基于slf4j 和 log4j实现web项目的日志输出
一:导入相关依赖
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.25</version></dependency><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.25</version></dependency>
slf4j-log4j12:用于log4j适配sjf4j
二:项目下创建log4j.properties(文件名称不可更改,log4j自动根据名称加载文件)
编辑log4j.properties
# DEBUG,INFO,WARN,ERROR,FATAL 日志等级
LOG_LEVEL=INFO log4j.rootLogger=${LOG_LEVEL},CONSOLE,FILE
# 定义像控制台输出时候的相关属性
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
#设置编码
log4j.appender.CONSOLE.Encoding=utf-8
#设置输出日志的格式
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd} %C{1}@(%F:%L):%m%n # 定义向文件输出日志时候的相关属性
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
# 日志文件保存到项目的Spring.log文件中
log4j.appender.FILE.File=Spring.log
#日志文件保存到容器的logs目录下
#log4j.appender.FILE.File=${catalina.base}/logs/survey.log
# 设置编码
log4j.appender.FILE.Encoding=utf-8
# 设置样式
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} %C{8}@(%F\:%L)\:%m%n
三:测试
package wxApp;import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class TestController {@Testpublic void testLog(){Logger log = LoggerFactory.getLogger(this.getClass());log.trace("这是rrace日志。。。");log.debug("这是debuug日志。。。");log.info("这是info日志。。。");log.warn("这是warn日志。。。");log.error("这是error日志。。。");}}
控制台日志打印:因为日志级别是info,所以只有三个输出
文件日志打印:
tigs:如果输出的时候出现以下日志
log4j:WARN Error initializing output writer.
log4j:WARN Unsupported encoding?
说明log4j.appender.CONSOLE.Encoding=utf-8 这一句的中间或者结尾出现空格,去除即可
slf4j+logback实现日志打印:https://blog.csdn.net/qq_37936542/article/details/80839389