java slf4j 占位符,Java日志使用slf4j 配置log4j后,有日志文件 但日志文件内容为空...

SLF4J的全称是Simple Logging Facade for Java,即简单日志门面。

SLF4J并不是具体的日志框架,而是作为一个简单门面服务于各类日志框架,如java.util.logging, logback和log4j。

SLF4J支持{}作为占位符,等价于C语言中的%s,而不必再进行字符串的拼接,效率有显著的提。

1.slf4j使用

引入包 slf4j-api-1.6.2.jar

importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;public classApp{private static Logger logger = LoggerFactory.getLogger(App.class);public static voidmain(String[] args) {

logger.info("info hello world");

logger.error("error hello world");

logger.debug("debug hello world");//输出参数比较多时可以使用占位符 (推荐此方法,不要使用字符串拼接)

logger.debug("Processing trade with id: {} and symbol : {} ", id, symbol);

}

}

2.与log4j集成

依赖包:slf4j-api-1.6.2.jar,slf4j-log4j12-1.6.2.jar ,log4j-1.2.17.jar

常见问题,配置log4j后,有日志文件,但日志文件内容为空。

原因:

a) slf4j 可能有多个绑定实现包,如slf4j-log4j12 与slf4j-jdk14 同时存在,删除一个包即可

b) 确认 sl4j-api与slf4j-log4j12版本是否一至,二者版本要保持一至才可以

c) 指定日志文件具体位置 log4j.appender.D.File=d:/debug.log

3.在src目录中创建log4j.properties (如果是maven项目,在src/main/resources目录中创建log4j.properties)

log4j.properties

### 设置###

log4j.rootLogger=DEBUG,stdout,D,E,I

### 输出信息到控制抬 ###

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志文件设置 ###

log4j.appender.D=org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File=debug.log

log4j.appender.D.Append=falselog4j.appender.D.layout=org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

### 输出ERROR 级别以上的日志文件设置 ###

log4j.appender.E=org.apache.log4j.DailyRollingFileAppender

log4j.appender.E.File=error.log

log4j.appender.E.Append=truelog4j.appender.E.Threshold=ERROR

log4j.appender.E.layout=org.apache.log4j.PatternLayout

log4j.appender.E.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

### 输出INFO 级别以上的日志文件设置 ###

log4j.appender.I=org.apache.log4j.RollingFileAppender

log4j.appender.I.File=info.log

log4j.appender.I.Append=truelog4j.appender.I.Threshold=INFO

log4j.appender.File.MaxFileSize=100KB

log4j.appender.I.MaxBackupIndex=15log4j.appender.I.layout=org.apache.log4j.PatternLayout

log4j.appender.I.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值