• springboot通过slf4j配置日志


    原因:SpringBoot默认使用slf4j日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉;

    而我今天想引入log4j的时候,pom文件一直报错,显示找不到log4j的jar包,应当是2.0.3的springboot版本的原因;

    在此就没再继续引入,而是采用了SpringBoot使用的slf4j的日志,有机会的话再测一下log4j和slf4j两种日志的效率对比。

    一、application.yml中配置日志打印级别,默认是info(也可选择不同目录):

    #slf4j日志配置
    logging:
      # 配置级别
      level:
        #分包配置级别,即不同的目录下可以使用不同的级别
        com.sblueice.controller: debug

    二、logback.xml中所有配置:

      配置打印文件的路径(一天一个,保存30天):

        <!-- 开发、测试环境 -->
        <springProfile name="dev,test">
            <!-- 定义日志存储的路径,不要配置相对路径 -->
            <property name="FILE_PATH" value="E:/temp0918/SpringBoot-log/cccf.%d{yyyy-MM-dd}.%i.log" />
        </springProfile>

     配置打印sql日志:
     <logger name="com.sblueice.mapper.UserMapper" level="DEBUG" />
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
     
        <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
        <property name="LOG_PATTERN"
                  value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
     
        <!-- 开发、测试环境 -->
        <springProfile name="dev,test">
            <!-- 定义日志存储的路径,不要配置相对路径 -->
            <property name="FILE_PATH" value="E:/temp0918/SpringBoot-log/cccf.%d{yyyy-MM-dd}.%i.log" />
        </springProfile>
        
        <!-- 生產環境 -->
        <springProfile name="pro">
            <!-- 定义日志存储的路径,不要配置相对路径 -->
            <property name="FILE_PATH" value="/user/lib/cccf/logs/cccf.%d{yyyy-MM-dd}.%i.log" />
        </springProfile>
     
        <!-- 控制台输出日志 -->
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <!-- 按照上面配置的LOG_PATTERN来打印日志 -->
                <pattern>${LOG_PATTERN}</pattern>
            </encoder>
        </appender>
     
        <!--每天生成一个日志文件,保存30天的日志文件。rollingFile是用来切分文件的 -->
        <appender name="rollingFile"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>
                    ${FILE_PATH}
                </fileNamePattern>
                <!-- keep 30 days' worth of history -->
                <maxHistory>30</maxHistory>
                <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <!-- 日志文件的最大大小 -->
                    <maxFileSize>10MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
     
            <encoder>
                <pattern>${LOG_PATTERN}</pattern>
            </encoder>
        </appender>
        <!-- project default level -->
        <logger name="com.hiynn.cccf" level="INFO" />
     
        <!-- 日志输出级别 -->
        <root level="INFO">
            <appender-ref ref="console" />
            <appender-ref ref="rollingFile" />
        </root>
    
        <!--myibatis log configure-->
        <logger name="com.sblueice.mapper.UserMapper" level="DEBUG" />
    </configuration>

    三、controller层输出打印日志(Java怎么没有着色。。。。)

    package com.sblueice.controller;
    
    import java.util.List;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import com.sblueice.services.UserService;
    
    /**
     * 
     * @author shaoz
     * @Date: 2019/10/09
     * 
     */
    
    @Controller
    public class UserController {
        
        
        Logger logger = LoggerFactory.getLogger(getClass());
        
        /**
         * 
        * @Title: testLog
        * @Description: TODO(测试springboot自带的日志打印)
        * @param: @return
        * @return: String
        * @throws
         */
        @RequestMapping("/testLog")
        @ResponseBody
        public String testLog() {
            
                // 级别由低到高 trace<debug<info<warn<error
                logger.trace("这是一个trace日志...");
                logger.debug("这是一个debug日志...");
                // SpringBoot默认是info级别,只会输出info及以上级别的日志
                logger.info("这是一个info日志...");
                logger.warn("这是一个warn日志...");
                logger.error("这是一个error日志...");
                String str = "https://www.cnblogs.com/steveshao/";
                logger.info("======欢迎访问无脚鸟的博客:{}
    ", str);
             
                return null;
        }
    
    }
        

    以上就是今天SpringBoot打印日志的过程,也借鉴了好多人的东西,目前找不到借鉴的链接了,如果有同学觉得我摘抄了您的原文,请联系我给您添加上原文链接哈。

  • 相关阅读:
    我们都可以把它放 Sidecar 容器中,这样微服务具备了 Super power,一种超能力
    DP 状态 DP 转移方程 动态规划解题思路
    完全二叉树 原因 完全二叉树最后一层节点靠左的原因
    延时任务最佳实践方案总结
    b+ 树 只存储 索引
    埋点质量保障体系建设
    linux命令重定向>、>>、 1>、 2>、 1>>、 2>>、 <
    卡特兰数
    python 使用函数名的字符串调用函数(4种方法)_black-heart的专栏-CSDN博客 https://blog.csdn.net/mrqingyu/article/details/84403924
    12 | 服务注册与发现如何满足服务治理
  • 原文地址:https://www.cnblogs.com/steveshao/p/11649537.html
Copyright © 2020-2023  润新知