java日志小记

目录
  1. 常用日志框架
  2. 一般要记录的日志
  3. 注意
  4. 个人常用日志框架

常用日志框架

slf4j,logback,commons-logging,log4j,jdk自带logging等。

一般要记录的日志

重要的业务逻辑、程序异常、记录类(如方法执行时间)及安全审计日志等。

注意

  • 不要使用System.out或System.err记录日志,不方便管理
  • 程序异常若为用户异常(如用户密码错误)没记录必要,多了影响真正异常的阅读;
  • 日志记录信息要完整,必要的业务数据要记录在日志中;
  • 日志级别要合理,要进行合理分类输出;
  • 新上线服务器做好日志分析,以确认新功能是否正常;
  • 异常不要记录后又重新向外抛出;
  • 对于分布式服务,日志要能定位到具体服务器,同时可开启其中一台服务器日志DEBUG级别好进行观察;
  • 做好日志监控报警,比用户先发现问题;
  • 规划好日志切分、删除工作。

个人常用日志框架

slf4j+logback
logback日志等级:TRACE<DEBUG<INFO<WARN<ERROR
配置文件一般classpath下建logback.xml即可,详见官方文档。
logback中3个重要的概念(其他框架也差不多):Logger,Appender,Layout

  • Logger:日志记录器,把它关联到应用对应的context上后,主要用于存放日志对象,定义日志类型、级别。
  • Appender: 指定日志输出的目的地,目的地可以是控制台,文件,或者数据库等。
  • Layout:负责把事件转换成字符串,格式化日志信息的输出

基础配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<configuration>

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>

<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>

Logback官方文档