这里是关于正确打印日志的攻略:
1. 什么是好的日志?
一个好的日志应该包含以下几个方面:
表现良好
- 日志输出应有较好的可读性;
- 日志输出要具有一定层次性;
- 日志输出要有一定格式化,比如在同一业务中输出的日志应当保持一致性。
提供足够的信息
- 日志应当详细描述应用发生了什么,以及发生原因;
- 一些需要排查的问题,还可以在日志中给出一些额外的信息或态度。
不只是输出debug级日志
- 日志级别应当由低到高,分别为DEBUG、INFO、WARN、ERROR和FATAL;
- 需要保证日志条数限制,避免过多的日志占用系统资源。
2. 日志输出库示例
Java中的日志输出库有很多,常见的有JDK自带的java.util.logging、log4j、Logback等。
以下是使用Logback输出日志的示例:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- 日志输出格式 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</layout>
</appender>
<!-- 将日志输出到指定位置 -->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>logs/myapp.log</file>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!-- 输出debug级别以上的日志 -->
<root level="debug">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
在Java中使用Logback输出日志,示例代码如下:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyApp {
// 通过声明log,使用LoggerFactory获取Logger
private static final Logger log = LoggerFactory.getLogger(MyApp.class);
public static void main(String[] args) {
log.debug("输出debug级别的日志");
log.info("输出info级别的日志");
log.warn("输出warn级别的日志");
log.error("输出error级别的日志");
}
}
以上示例演示了如何在Java代码中使用Logback输出日志,通过设置UTF格式的LogBack配置,设置在控制台和指定文件的输出,还示范了如何在不同的情况下输出不同的级别的日志。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:别在Java代码里乱打日志了,这才是正确的打日志姿势 - Python技术站