首先建立项目
package a; import org.apache.log4j.Logger; public class Test { private static Logger logger=Logger.getLogger(Test.class); public static void main(String[] args) { logger.debug("debug"); logger.info("info"); logger.warn("warn"); logger.error("error"); logger.fatal("fatal"); } }
log4j.properties
log4j.rootLogger=DEBUG,Console,DEBUGFile ,ERRORFile log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.SimpleLayout #DEBUGFile log4j.appender.DEBUGFile = org.apache.log4j.FileAppender log4j.appender.DEBUGFile.File = E://debug.log log4j.appender.DEBUGFile.layout = org.apache.log4j.PatternLayout log4j.appender.DEBUGFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n log4j.appender.DEBUGFile.Threshold = DEBUG log4j.appender.DEBUGFile.Append = false #ERRORFile log4j.appender.ERRORFile = org.apache.log4j.FileAppender log4j.appender.ERRORFile.File = E://error.log log4j.appender.ERRORFile.layout = org.apache.log4j.PatternLayout log4j.appender.ERRORFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n log4j.appender.ERRORFile.Threshold = ERROR
二话不说,先把项目跑起来
在到E盘中看看我们的日志文件
实践已经结束了,现在开始理论了。
日志级别从高到低:
OFF | 关闭了日志信息 ,什么也不记录(一般不用) |
FATAL |
可能导致应用中止的严重事件错误 |
ERROR | 严重错误 主要是程序的错误 |
WARN | 一般警告,比如session丢失 |
INFO |
一般要显示的信息,比如登录登出 |
DEBUG |
为程序的调试信息 |
TRACE |
为比DEBUG更细粒度的事件信息 |
ALL |
全纪录(一般不用) |
log4j.rootLogger是根配置属性
log4j.rootLogger=【level】,目的地名1,目的地名2,目的地名3....
level是日志等级,
目的地:是日志的记录信息输出到什么地方
目的地的值:
org.apache.log4j.ConsoleAppender 控制台
org.apache.log4j.FileAppender 文件
org.apache.log4j.DailyRollingFileAppender 每天产生一个日志文件
org.apache.log4j.RollingFileAppender 文件大小到达指定尺寸的时候产生一个新的文件
org.apache.log4j.WriterAppender 将日志信息以流格式发送到任意指定的地方
log4j.appender.Console.layout 日志的输出形式,
值如下:
org.apache.log4j.HTMLLayout HTML表格形式布局
org.apache.log4j.PatternLayout 自定义日志格式
org.apache.log4j.SimpleLayout 包含日志信息的级别和信息字符串
org.apache.log4j.TTCCLayout 包含日志产生的时间、线程、类别等等信息
log4j.appender.DEBUGFile.File = E://debug.log 日志的输出地址
log4j.appender.Console.layout.ConversionPattern=%-5p [%c] - %m%n 自定义日志的输出格式
其中-5这一项表示的是输出的日志级别名称所占的字符数为5,不足5个字符的用空格补全,其实就是起到对齐的作用,方便查看日志内容
具体参数如下
%m | |
%M | |
%p | |
%r | |
%c | |
%t | |
%n | |
%d | |
%l | |
log4j.appender.DEBUGFile.Threshold = DEBUG 日志消息的输出最低层次 这里的值只能比根层级高,否则无法输出
log4j.appender.DEBUGFile.Append = false 日志文件是否追加,默认就是true,表示追加