Log4j配置及使用经验总结

来源:互联网 发布:苹果mac官方壁纸山峰 编辑:程序博客网 时间:2024/05/19 12:24

一. log4j的使用步骤:

1.编写log4j的properties配置文件,一般命名为log4j.properties,也可以使用别的文件名。
2.在程序中使用log4j记录日志

public class Test {    //获取Logger(有两种类型的日志可以获取,查看后面详细解释)    private static Logger logger = Logger.getLogger("ROLLFILE"); //或者Logger.getLogger("Test .class");    public static void main(String[] args) {        new Test().testLogger();    }    public void testLogger() {        //log4j配置文件路径        String path = (this.getClass().getResource("/").getPath()).substring(1);        //加载配置文件        PropertyConfigurator.configure(path + "config/log4j.properties");         //使用各个日志等级进行记录        logger.debug("debug msg!");        logger.info("info msg!");        logger.warn("warn msg!");        logger.error("error msg!");        logger.fatal("fatal msg!");        //对于异常对象的打印        try{            System.out.println(1%0);        }catch(Exception e){            logger.error("未知异常", e);        }    }}

说明:

1. 日志对象获取

日志的获取通过Logger对象的静态方法getLogger进行获取,该方法参数有两个重载方法,第一种方法的参数字符串,该方法用与获取指定名称的日志对象(可以通过配置文件配置多个日志对象,配置文件实质为日志对象集合);第二种方法的参数为类,获取到的日志对象为rootLogger,参数的作用为日志打印时改行日志显示的类名全称。

2. 日志系统配置加载

使用PropertyConfigurator对象的静态方法configure进行加载log4j的配置文件

3. 日志对象输入日志方法

根据日志等级的不同,日志输出方法为五种,分别为debug,info,warn,error,fatal。每个方法都有两个重载方法,第一个方法参数为Object,此方法打印object的字符串形式,第二个方法的参数为Object和Throwable,此方法用于打印Object及异常。

二. log4j的配置:

1. 基本配置

# 配置root日志  这个是不指定日志对象即使用类作为参数获取到的日志对象,第一个参数为日志等级,表示输出日志最低等级,之后的参数为输出目标Appender【控制台或者文件】,这两种输出目标的配置是有些不同的,后面说明。log4j.rootLogger=DEBUG, CONSOLElog4j.logger.FILE=DEBUG, FILE#################### Console Appender###################log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.Threshold=DEBUGlog4j.appender.CONSOLE.Target=System.outlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n###################### File Appender###################### 指定Appender[Appender有ConsoleAppender和FileAppender ]log4j.appender.FILE=org.apache.log4j.FileAppender # 指定文件log4j.appender.FILE.File=file.log# 指定是否在文件中追加log4j.appender.FILE.Append=false#指定日志打印格式处理对象log4j.appender.FILE.layout=org.apache.log4j.PatternLayout#指定日志打印格式log4j.appender.FILE.layout.ConversionPattern=%d{yyMMdd HH:mm:ss} [%p] %l - %m%n

日志打印格式表达式说明:
转自【http://zwllxs.iteye.com/blog/1143112】

%n - 换行  %m - 日志内容     %p - 日志级别(FATAL,   ERROR,   WARN,   INFO,   DEBUG   or   custom)      %r - 程序启动到现在的毫秒数   %% - percent   sign   in   output  %t - 当前线程名  %d   -  日期和时间,       常用的格式有 %d{DATE}, %d{ABSOLUTE}, %d{HH:mm:ss,SSS}, %d{ddMMyyyy HH:mm:ss,SSS}。。。  %l - 同 %F%L%C%M      %F - java源文件名  %L - java源码行数      %C - java类名,%C{1} 输出最后一个元素      %M-java方法名      %n - 换行    %m - 日志内容       %p - 日志级别(FATAL,   ERROR,   WARN,   INFO,   DEBUG   or   custom)        %r - 程序启动到现在的毫秒数     %% - percent   sign   in   output    %t - 当前线程名    %d   -  日期和时间,         常用的格式有 %d{DATE}, %d{ABSOLUTE}, %d{HH:mm:ss,SSS}, %d{ddMMyyyy HH:mm:ss,SSS}。。。    %l - 同 %F%L%C%M        %F - java源文件名    %L - java源码行数        %C - java类名,%C{1} 输出最后一个元素        %M-java方法名
0 0
原创粉丝点击