Log4j 快速上手教程

2018-03-18  本文已影响0人  Funk_V

示例:log4j.properties文件

#定义LOG输出级别
log4j.rootLogger = DEBUG,Console,File
#定义日志输出目的地为控制台
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

#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 输出所有日志,如果换成DEBUG表示输出DEBUG以上级别日志
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

解析

log4j.rootLogger = [ level ] , appender1, appender..n

例如:log4j.rootLogger = WARN, Console, File


定义了对象,自然需要配置对象的具体属性
一般来说,配置格式为

log4j.appender.[ object ] = org.apache.log4j.[ class ]
log4j.appender.[ object ].[ attribute ] = [ value ]
...
log4j.appender.[ object ].[ attribute ] = [ value ]
CLASS 说明
ConsoleAppender 控制台
FileAppender 文件
DailyRollingFileAppender 每天产生一个日志文件
RollingFileAppender 文件大小到达指定尺寸的时候产生一个新的文件
WriterAppender 将日志信息以流格式发送到任意指定的地方
属性 描述 value
layout 可以灵活地指定日志输出格式 org.apache.log4j.PatternLayout、...
target 目的地可以是控制台、文件,或依赖于 appender 的对象 System.out、...
threshold 定义一个阀值级别,Appender会输出所有级别大于或等于阀值级别的日志 AllDEBUG、...

注:所有的Appender都可通过设置Threshold来设置本Appender的启用级别


关于PatternLayout

PatternLayout 是一个简单的 Layout 对象,可通过配置文件更改其属性conversionPatter以设置转换模式。
默认为%r [%t] %p %c %x - %m%n

字符含义,详见链接


测试

log4j.properties

#定义LOG输出级别
log4j.rootLogger = DEBUG,Console,File
#定义日志输出目的地为控制台
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

#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = WARN
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern = [%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

测试代码

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Log4jTest {
    private static Logger logger = LoggerFactory.getLogger(Log4jTest.class);

    public static void main(String args[]) {
        logger.error("Error Message");
        logger.warn("Warn Message");
        logger.info("Info Message");
        logger.debug("Debug Message");
    }
}

测试结果

Console.png
File.png
上一篇下一篇

猜你喜欢

热点阅读