简介
- 打印日志的工具
简单使用
- 这是一份log4j的简单配置文件, 先了解日志的输出等级。OFF(不输出,没有意义),FATAL(严重的),ERROR(错误),WARN(警告),INFO(正文),DEBUG,ALL。官方推荐使用ERROR,WARN,INFO,DEBUG这四个等级,选了前面的等级,则后面的等级不会输出。
#根配置文件,将debug等级的日志输出到,Console和file
log4j.rootLogger=DEBUG,Console,file
#Console,输出到控制台
log4j.appender.Console= org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
#file输出到文件中
log4j.appender.file= org.apache.log4j.FileAppender
# 这是要输出到的文件
log4j.appender.file.File= D://logs/logs.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
- 然后我们可以去写helloworld
public class Test {
public static void main(String[] args) {
//获取类的实例,因为可能要打印类信息
Logger logger = Logger.getLogger(Test.class);
logger.info("普通信息");
logger.debug("debug信息");
logger.error("报错信息");
logger.warn("警告信息");
//可以在后面接一个异常,所有方法适用
logger.fatal("严重信息",new Exception("就是个严重的异常"));
}
}
-控制台输出内容
- 指定的log文件的信息,和控制台一样
配置文件内容
-
rootLogger
- 语法 : log4j.rootLogger = [level],appenderName,appenderName,…
- 把指定等级级别的日志信息输出到指定的一个或者多个位置
-
appender输出类型配置
- 指的是log4j.appender.要输出的位置***(以下简称位置*)
- org.apache.log4j.ConsoleAppender(表示控制台)
- org.apache.log4j.FileAppender(文件)
- org.apache.log4j.DailyRollngFileAppender(每天产生一个日志文件,常用)
- org.apache.log4j.RollingFileAppender(文件达到指定大小是产生一个新文件,常用)
- 在选择这个时有些可选指定项
- log4j.appender.位置.MaxFileSize=1kb 文件的最大尺寸,根据实际需求来定,如100KB ,500KB
- Log4j.appender.file.MaxBackupIndex=2 日志文件的个数,考虑硬盘容量问题
- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
- 指的是log4j.appender.要输出的位置***(以下简称位置*)
-
日志信息格式
- 指的是log4j.appender.位置.layout
- org.apache.log4j.HTMLLayout(以HTML表格形式布局)
- org.apache.log4j.PatternLayout(灵活的指定布局)
- org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
- org.apache.log4j.TTCCLayout(包含日志产生的时间,线程,类别等等信息)
- 指的是log4j.appender.位置.layout
-
灵活配置输出属性
-
在Layout里有个属性ConversionPattern属性,灵活配置输入属性,指的是log4j.appender.位置.layout.ConversionPattern
- %m :输出代码中的指定的消息
- %M:输出打印该条日志的方法名
- %p: 输出优先级,即DEBUG,INFO,ERROR,WARN,FATAL
- 因为单词长度不一,为了使输出好看,可以 %-5p,表示指定5个字符,没有就用空格补上
- %c :输出所属的类目,通常是所在类的类名
- %r:输出自应用启动启动到输出该log信息耗费的毫秒数
- %t:输出产生该日志事件的线程名
- %n:输出一个回车换行符,Windows为"rn",Unix平台为"n"
- %d:输出日志时间点的日期或时间,默认格式为iso8601,也可以在其后指定格式,如: %d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2020-10-28 22:16:55,999
- %l 输出日志事件的发生位置,及在代码中的行数
-
Threshold属性指定输出等级
- 适合单独将一些报错日志指定存到指定文件
- 注意,指定的等级不能小于根指定的等级,否则无效
- 例: log4j.appender.位置.Threshold=DEBUG
-
Append是否追加内容
- 默认为true,表示追加内容,选择false表示覆盖上一次写的内容
- log4j.ppender.位置.Append=true