日常开发中,想打印某些值的信息时
总是Syso=>System.out.pringln(xxx)
然后在代码规范里看到了,禁止使用这种方式打印信息,可以选择日志工具打印查看
日常使用的工具有log4j、logback、slf4j
log4j必须配置配置文件log4j.properties,类似下面这样,可以指定打印级别
# Configure logging for testing: optionally with log file
log4j.rootLogger=INFO, stdout
# log4j.rootLogger=WARN, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
一般log4j会和commons-logging搭配使用
commons-logging提供一个统一的日志接口,简单了操作,同时避免项目与某个日志实现系统紧密a耦合很贴心的帮我们自动选择适当的日志实现系统(这一点非常好!)它甚至不需要配置
在使用时,会从classpath查找commons-logging.properties文件
若找不到,则在查找是否已定义系统环境变量org.apache.commons.logging.Log,找到则使用其定义的Log实现类
这样使用
private static Log log = LogFactory.getLog(YouClassName. class );
主要还是用这个打印日志吧
不需要配置文件,只需要依赖slf4j-api即可
然后使用时直接
private static final Logger LOGGER = LoggerFactory.getLogger(CheckCodeUtills.class);
然后使用
LOGGER.info、warn、error(xxxx)
之类的
只需要在需要使用的类上加上(需要提前引入lombok依赖)
@Slf4j
然后在使用时
log.info、warn....(xxxx)
即可
另外下面这篇博客说明了slf4j和log4j的好坏
https://www.oschina.net/translate/why-use-sl4j-over-log4j-for-logging