系统中的日志采用 slf4j+logback实现
引入记录日志模块
Pom.xml文件中配置
代码:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
…
Logger log = LoggerFactory.getLogger(Clazz.class);
logback.xml配置文件中
2. 程序中记录日志常用方法
Logger.error(“the error code is {}”,”1111”);
其中{}是要替换的参数,在评估是否作记录后,仅当需要作记录时,logger 才会格式化消息,
值替换"{}"。换句话说,当记录语句被禁用时,这种方法不会产生参数构造所带来的性能消耗。
Logger.error(“the error code is {}, the reason is{} the money is {}”,“1111”,”reason”,99.9);
此方法适合多个参数
如需打印出异常堆栈信息
Logger.error(“the error code is {}, the reason is{} the money is {}”,“1111”,”reason”,99.9,e);
此方法适合多个参数并打印出异常信息
3. 日志输出效果
4. 日志的自定义扩展
如需定义act.biz业务日志类型
配置如下:
Logger log = LoggerFactory.getLogger(“act.biz”);
配置文件追加
5. FAQ
日志不输出的一个原因
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n false ${LOG_HOME_ALL}/${PROJECT_NAME}-all.log ${LOG_HOME_ALL}/${PROJECT_NAME}-all-%d{yyyyMMdd}.%i.zip 30 100MB %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n UTF-8 false ERROR ACCEPT DENY ${LOG_HOME_ERROR}/${PROJECT_NAME}-error.log ${LOG_HOME_ERROR}/${PROJECT_NAME}-error-%d{yyyyMMdd}.%i.zip 30 100MB %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n UTF-8 false