参考
https://zhuanlan.zhihu.com/p/32475568
https://www.cnblogs.com/Jason-Xiang/p/6549608.html
概述
SLF4J 和 Log4j「推荐」
抽象层 + 中间层 + 实现层的组合,分别对应:slf4j-api、slf4j-log4j12、log4j
maven
只包含slf4j-log4j12
即可
1 2 3 4 5 6 7 8 9 10 11 12
| <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>2.0.0-alpha1</version> </dependency>
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency>
|
SLF4J 和 slf4j-simple
抽象层 + 实现层的组合
maven
1 2 3 4 5 6 7 8 9 10 11
| <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.8.0-beta0</version> </dependency>
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.8.0-beta0</version> </dependency>
|
使用
方式一
1 2 3 4 5 6 7 8 9
| import org.slf4j.Logger; import org.slf4j.LoggerFactory;
public class HelloWorld { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger(HelloWorld.class); logger.info("Hello World"); } }
|
方式二
1 2 3 4 5 6
| @Slf4j
log.info("xxx");
# 带参数 log.info("为{}生成主键值->:{}", name, id);
|
log4j.properties
参考《Log4j》
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| log4j.rootLogger=DEBUG,Console,Daily_Rolling
log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out log4j.appender.Console.Threshold=DEBUG log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH\:mm\:ss,SSS}][%c]%m%n
log4j.appender.Daily_Rolling=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Daily_Rolling.Threshold=DEBUG
log4j.appender.Daily_Rolling.File=./logs/log4j.log
log4j.appender.Daily_Rolling.Append=true
log4j.appender.Daily_Rolling.DatePattern=.yyyy-MM-dd
log4j.appender.Daily_Rolling.layout=org.apache.log4j.PatternLayout log4j.appender.Daily_Rolling.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss,SSS} [%C]-[%p] %m%n
|