log4j的输出级别分为 OFF(关闭日志) > FATAL(致命错误) > ERROR(错误) > WARN(警告) > INFO > DEBUG > ALL(打开日志)
log4j建议只使用 四种级别 ERROR,WARN,INFO,DEBUG
当日志的输出级别定义为 ERROR时 日志级别小的不会被打印
log4j 基本组成部分(优先级,日志输出地址,输出格式)
优先级
log4j.rootLogger = INFO, appenderName, appenderName, …
日志输出地址
ConsoleAppender(控制台),
FileAppender(文件),
DailyRollingFileAppender(每天产生一个日志文件),
RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
WriterAppender(将日志信息以流格式发送到任意指定的地方)
输出格式
HTMLLayout(以HTML表格形式布局),
PatternLayout(可以灵活地指定布局模式),
SimpleLayout(包含日志信息的级别和信息字符串),
TTCCLayout(包含日志产生的时间、线程、类别等等信息)
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
log4j 基本配置步骤
1. 新建一个java项目,新建一个lib文件夹
2.将 log4j-1.2.9.jar 拖进lib文件夹中,点击log4j-1.2.9.jar 右键 build path 选择 add to build path
3.新建log4j.properties 文件 写入内容 如代码片段1
4.在项目的src 先新建一个 Text.java,写入 代码片段2
log4j.rootLogger=INFO,Console,File,D
#\u8F93\u51FA\u4FE1\u606F\u5230\u63A7\u5236\u53F0
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#\u8F93\u51FA\u6240\u6709\u65E5\u5FD7\u5230E://logs/log.log\u6587\u4EF6\u5939\u4E0B
log4j.appender.File = org.apache.log4j.RollingFileAppender
log4j.appender.File.File = E://logs/log.log
log4j.appender.File.MaxFileSize = 10MB
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
#\u8F93\u51FAdebug\u7EA7\u522B\u4EE5\u4E0A\u4FE1\u606F
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = E://logs/debug.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
private static Logger logger = Logger.getLogger(Test.class);
public static void main(String[] args) {
logger.debug("This is debug message.");
logger.info("This is info message.");
logger.warn("This is warn message.");
logger.error("This is error message.");
}