日志可以干什么
- 跟踪用户对系统访问
- 统计
- Debug
- 数据恢复
常见的框架:
JUL(java.util.logging),JCL(Jakarta Commons Logging),Log4j,Log4j2,Logback、SLF4j、jboss-logging
在系统中使用slf4j+logback
在搭建的maven项目中使用的是ssm框架,由于Spring框架默认是用的JCL,要是使用slf4j+logback的话会产生冲突,所以需要排除(JCL)依赖,使用一个新的中间件替代JCL。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId><!-- 替换commons-logging-->
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId><!-- 替换java.util.logging-->
<version>1.7.25</version>
</dependency>
使用slf4j+logback
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId><!-- 间接依赖logback-core--><!-- 优秀的日志实现-->
</dependency>
<!-- slf4j(门面): Simple Logging Facade for Java :简单日志门面(接口)(类似JDBC);
log4j:日志实现(类似数据库驱动);
log4j2(实现), logback(实现),
后来我们用slf4j+logback(最稳定的方案); -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId><!-- 抽象层,接口-->
</dependency>
maven项目下:一个注解就搞定
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>