• springboot 入门五-日志一


    springboot内部采用commons logging作为日志纪录,但也保留了第三方的日志框架接入的实现,例如Java Util Logging,Log4J2还有Logback。如果你要实现一种日志需要预先进行设置。spring boot默认使用logback做为日志框架

    一、默认日志写法:

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;

    private final Log logger = LogFactory.getLog(getClass());

    logger.info("打印INFO 日志信息");

    输出的日志格式:

    2017-09-13 11:29:40.341  INFO 4768 --- [nio-9090-exec-1] com.song.boot.controller.HomeController  : 打印INFO 日志信息

    打印时间:为了便于排序,时间精确到毫秒级

    日志级别:ERRORWARNINFODEBUG or TRACE (默认打印ERRORWARNINFO三级别日志消息)

    进程ID

    ---分隔符:分隔符区分实际日志消息的开始

    括号: 线程名称,使用括号方便截取

    日志名称

    日志具体消息

    二、日志输出

    springboot日志默认输出到console,不会输出外部文件。如果想要在控制台输出之外编写日志文件,则需要设置一个日志相关配置logging.file或logging.path在application.properties中

    logging.file=D://my.log  (指定文件)

    logging.path=E://my.log  (指定目录)

    file比path级别高,如果配置file属性会过滤path。  path是生成一个my.log的文件,日志文件名spring.log

    三、日志级别ERRORWARNINFODEBUG or TRACE

    logging.level.root=WARN
    logging.level.org.springframework.web=DEBUG
    logging.level.org.hibernate=ERROR

    四、定制化外面日志框架

    通过classpath中类库可以激活相应的日志系统,或者在spring的环境属性logging.config进一步定制。

    日志系统  定制文件

    Logback  logback-spring.xml, logback-spring.groovy, logback.xml or logback.groovy

    Log4j2  log4j2-spring.xml or log4j2.xml

    JDK (Java Util Logging)  logging.properties  (会报出已知的加载类的问题,建议不要使用)

    举例logback来详细说明配置:

    logback的日志文件命名是logback-spring.xml,而不是logback.xml,原因是,命名为logback-spring.xml的日志配置文件,spring boot可以为它添加一些spring boot特有的配置项。

    logback-spring.xml模板

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%-16(%d{MM-dd HH:mm:ss}) %-5thread %logger{3} -%msg%n</pattern>
                <charset>utf8</charset>
            </encoder>
        </appender>
        <root level="INFO">
            <appender-ref ref="CONSOLE" />
        </root>
        
        <appender name="bootAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>E:/logs/boot.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <FileNamePattern>E:/logs/boot.log.%d{yyyy-MM-dd}</FileNamePattern>
            </rollingPolicy>
            <encoder>
                <pattern>%-16(%d{MM-dd HH:mm:ss}) %-5thread %logger{3} -%msg%n</pattern>
            </encoder>
        </appender>
        <logger name="bootAppender" additivity="false" level="INFO">
            <appender-ref ref="bootAppender" />
        </logger>
    </configuration>

    使用:

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
        private Logger log_console = LoggerFactory.getLogger(getClass()); //打印console输出
        private Logger log_boot = LoggerFactory.getLogger("bootAppender");//输出到外部文件

    file:输出外面文件路径

    rollingPolicy.FileNamePattern:文件分隔规则

    encoder.pattern:输出格式

    encoder.charset:输出内容字符码

    logger.additivity:是否往上输出

    logger.level:输出日志的级别

     如果使用定制化外部日志框架, 并不需要去application.properties进行日志设置。若需要修改框架内部日志输出等级,在logback-spring.xml加入<logger name="org.springframework.web" level="DEBUG"/>

  • 相关阅读:
    mybatis批量操作
    获取datagrid中编辑列combobox的value值与text值
    easyui editor combobox multiple
    Spring mvc Interceptor 解决Session超时配置流程
    Error In Work
    jquery.min.map 404 (Not Found)出错的原因及解决办法
    Ubuntu 14.10安装SecureCRT 7.3
    UEFI引导修复教程和工具
    MySQL 模拟Oracle邻接模型树形处理
    Linux下玩转Dota2
  • 原文地址:https://www.cnblogs.com/song27/p/7515756.html
Copyright © 2020-2023  润新知