老狗——Java日志插件log4j
现在有更牛x的 log4j2 了,建议看完本帖去看看2的帖子。
1、什么是log4j?
日志: 日志是系统运行过程中的后台输出信息,方便程序员进行系统运行的管控以及Bug的查找
log4j: log4j是一个日志输出的插件,专门用来进行日志的管理的
传统方式获取日志 使用System.out.println() 语句进行后台打印
问题:
- 日志信息无法保存
- 无法显示完整日志信息
- 日志的显示没有级别所有的日志混杂在一起显示(无法进行日志信息筛选)
- 日志显示格式不友好
解决: 使用 log4j 进行日志管理
log4j 特点:
- 日志可以单独保存在文件中
- 可以获取完整的日志信息
- 可以进行日志显示的筛选
- 格式友好
2、log4j 的配置文件
注意:配置文件一定要存放在 src
下,并命名为log4j.properties,建议查看官网文档。
// 设置
log4j.rootLogger = debug,stdout,D,E
// 输出信息到控制台
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 级别以上的日志到 = E://logs/error.log
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.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 级别以上的日志到 = E://logs/error.log
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =E://logs/error.log
log4j.appender.E.Append = true
log4j.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
3、log4j 的使用
- 导入log4j的jar包
- 配置log4j的配置文件
- log4j 的日志级别
3.1 FATAL: 致命的错误
3.2 ERROR:异常错误
3.3 WARN:警告
3.4 INFO:信息(方法)
3.5 DEBUG:调试(代码级别) - 在使用 log4j 的类中声明全局的 Logger 对象
public static Logger logger = Logger.getLogger(类名.class);
- 使用 Logger 对象调用日志方法进行日志输出语句声明
logger.debug("I'm debug"); // 一般在方法内部使用
logger.info("I'm info"); // 一般在调用方法使用
logger.warn("I'm warn"); // 一般在需要警告的位置使用
logger.error("I'm error"); // 在 catch 代码块中使用
logger.fatal("I'm fatal"); // 在 catch 代码块中使用