一、现有的日志框架
- commons-loggin、slf4j 只是一种日志抽象门面,不是具体的日志框架。
log4j、logback 是具体的日志实现框架。 - 在比较关注性能的地方,选择Logback或自己实现高性能Logging API可能更合适。推荐:
slf4j + logback
. - 在已经使用了Log4j的项目中,如果没有发现问题,继续使用可能是更合适的方式:推荐组合为:
slf4j + log4j2
. - 如果不想有依赖则使用java.util.logging或框架容器已经提供的日志接口。
备注:
1、Log4j 2是apache开发的一款Log4j的升级产品。
2、Logging是 Java 自带的日志工具类
3、更多查看:https://www.cnblogs.com/xiexj/p/9417128.html
二 、使用日志注意事项
1、日志级别:OFF>FATAL>ERROR>WARN>INFO>DEBUG>ALL
2、添加DEBUG日志时先增加isDebugEnabled
代码块判断
3、使用标准化格式而不要自行拼接
logger.debug("No of Orders " + noOfOrder + " for client: " + client);//不好
logger.debug("No of Orders {} for client: {}", noOfOrder, client);
4、不要使用 System.out.print和
e.printStackTrace()
5、不要抛出异常后又输出日志,需要输出全部错误信息
try {
// ...
} catch (Exception e) {
// 错误
LOG.error('XX 发生异常', e.getMessage());
// 正确
LOG.error('XX 发生异常', e);
}
6、禁止在线上环境开启 debug
三、使用方法
1、Java日志API由以下三个核心组件组成:
-
Loggers:Logger负责捕捉事件并将其发送给合适的Appender。
-
Appenders:也被称为Handlers,负责将日志事件记录到目标位置。在将日志事件输出之前,Appenders使用Layouts来对事件进行格式化处理。
-
Layouts:也被称为Formatters,它负责对日志事件中的数据进行转换和格式化。Layouts决定了数据在一条日志记录中的最终形式。
2、log4j具体使用指南及配置详解:https://blog.csdn.net/weixin_42476601/article/details/82629114
转载自:https://www.jianshu.com/p/546e9aace657
https://blog.csdn.net/xiaoao20080/article/details/91285284