1.log级别:由高到低 OFF,FATAL,ERROR,WARN,INFO,DEBUG,TRACE,ALL。
ALL :最低等级,打开所有记录。
TARCE:低级别的日志记录,一般不使用。
DEBUG:程序中细粒度信息的调试或运行信息。
INFO:粗粒度的运行或调试信息。
WARN:警告信息。
ERROR:程序中的错误信息,但仍然不影响系统的决心运行。
FATAL:程序直接退出,重大错误。
OFF:用于关闭所有日志记录。
高级别的不会输出低级别的日志信息,低级别的会输出高级别的日志信息。
例:设置error, WARN INFO DEBUG TRACE ALL级别不会输出。
现在实践在springBoot logback 输出mybatis sql,第一步当然是添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
第二步:采用自定义日志配置logback-spring.xml,完整代码如下
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>logback-mybatis</contextName>
<!-- 定义日志文件 输入位置 -->
<property name="log.path" value="C:\\web\\log\\my-mybatis.log" />
<!-- 自定义输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!--输出到文件-->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logback.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
<!-- 具体到某一个包下,以何种级别打印日志,additivity 表示打印是否向上一级传递 -->
<logger name="com.springboot.example.springBootmybatis.controller" level="WARN" additivity="false">
<appender-ref ref="console"/>
</logger>-->
<!-- 注意 additivity(默认为ture) 为ture-->
<logger name="com.springboot.example.springBootmybatis.mapper" level="DEBUG" additivity="ture"></logger>
<!-- 测试环境+开发环境. 多个使用逗号隔开. -->
<springProfile name="test,dev">
<logger name="com.springboot.example.springBootmybatis.controller" level="info" />
</springProfile>
<!-- 生产环境. -->
<springProfile name="prod">
<logger name="com.springboot.example.springBootmybatis.controller" level="ERROR" />
</springProfile>
</configuration>
然后在properties,或yml中配置
logging.level.root=INFO
logging.level.com.springboot=INFOlogging.config=classpath:logback-spring.xml
运行,保存日志到指定文件中并得出结果(见下图)
/******************************************log4j的实现(ssm框架下)**********************/
1.添加依赖,强调一下,slf4j-api版本不能超过1.8,不然会出现:
SLF4J:没有找到SLF4J提供者。SLF4J:默认为无操作(NOP)日志记录器实现。因为SLF4J:类路径包含SLF4J绑定,目标是在1.8之前的SLF4J -api版本。
<!-- log4j 日志-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
2.web.xml 添加监听
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/log4j.xml</param-value>
</context-param>
3.log4j.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- APPENDER 控制台 -->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} %c{1} - %m%n" />
</layout>
</appender>
<!--输出到文件-->
<appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${webapp.root}/logs/ccdproject.log" />
<param name="append" value="true" />
<param name="encoding" value="UTF-8" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} %c{1} - %m%n" />
</layout>
</appender>
<logger name="com.ccdproject.mapper">
<level value="DEBUG" />
<appender-ref ref="CONSOLE" />
</logger>
<logger name="com.ccdproject.controller">
<level value="DEBUG" />
<appender-ref ref="CONSOLE" />
</logger>
</log4j:configuration>
结果同上:
一些具体配置可参考:
https://www.cnblogs.com/wangdaijun/p/7054114.html 写的很详细,点个赞
https://blog.csdn.net/draven1122/article/details/77505631 也很不错