zoukankan      html  css  js  c++  java
  • [log4j]log4j简单配置

    步骤:

    1.导入jar包:log4j-1.2.17.jar

    2.编写log4j配置文件:log4j.properties

    ### set log levels - for more verbose logging change 'info' to 'debug' ###
    #这里指定了输出info以上级别的信息,并可以输出到控制台stdout,以及file中
    log4j.rootLogger=info,stdout,file
    
    ### direct log messages to stdout ###
    #控制台
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
    
    ### direct messages to file mylog.log ###
    #文件 只输出到一个文件中
    log4j.appender.logFile=org.apache.log4j.FileAppender
    log4j.appender.logFile.File=E:/logs/mylog.txt
    log4j.appender.logFile.encoding=UTF-8
    log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logFile.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
    
    
    ### the file overd some size will create a new log file ###
    #滚动文件 可以设置文件的大小(超过大小的自动创建新的日志文件来存放),以及文件的个数(文件个数超过后不再重新创建,会将新的内容从第一个文件开始存放)
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.Append=true
    log4j.appender.file.File=E:/logs/log.txt
    log4j.appender.file.encoding=UTF-8
    log4j.appender.file.MaxFileSize=10MB
    log4j.appender.file.MaxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
    
    
    ### error information ### 
    #文件 只输出error信息到此文件
    log4j.appender.errorfile=org.apache.log4j.FileAppender 
    log4j.appender.errorfile.File=E:/logs/errlog.txt
    log4j.appender.errorfile.Threshold=ERROR
    log4j.appender.errorfile.Append=false 
    log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout 
    log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
    
    
    

     log4j.rootLogger=info,stdout,file   的语法为:

     log4j.rootLogger = [ level ] , appenderName1, appenderName2, …
         level : 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
         appenderName:就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
         例如:log4j.rootLogger=info,A1,B2,C3 配置了3个输出地方,这个名字可以任意(如上面的stdout,file),但必须与我们在后面进行的设置名字对应
     

    3.在web.xml中配置log4j
      如果直接将log4j.properties文件放在src路径下,那么就不需要在web.xml文件配置相关信息了,项目会自动加载的

      反之就需要配置(利用spring的监听器来加载,此时log4j.properties的位置可以放到其他地方):

          <!-- 在ssh中,可以使用spring的监听器来来加载 -->
        <context-param>
           <param-name>log4jConfigLocation</param-name>
           <param-value>classpath:config/log4j.properties</param-value>
        </context-param> 
        <!-- 使用spring的监听器,当应用启动时来读取log4j的配置文件 -->
        <listener>
           <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
        </listener>
    

      4.程序中使用log4j

    public class Test {
        //每个类中加上这个
        public static Logger logger=Logger.getLogger(Test.class);
        public static void main(String[] args) {
            logger.info("小蚊子qq:513996980");
            logger.info("小王啊哈方法看妇科小王啊哈方法看妇科小王啊哈");
            logger.error("对方水电费");
            int a = 10;
            try{
                int b = a/0;        
            }catch(Exception e){
                //将异常信息打印到日志文件中
                //logger.error(e.getStackTrace()[0]);
                //logger.error(e.getMessage());
                logger.error(getTrace(e));
            }
        
        }
        
        //封装了异常信息打印的方法
        public static String getTrace(Throwable t) {
            StringWriter stringWriter= new StringWriter();
            PrintWriter writer= new PrintWriter(stringWriter);
            t.printStackTrace(writer);
            StringBuffer buffer= stringWriter.getBuffer();
            return buffer.toString();
        }
    }

    运行之后,就可以看到控制台 以及你的日志文件中 会有相关的打印信息啦。。。。。

    附注:

    log4j的输出级别:

    1 FATAL 0
    2 ERROR 3
    3 WARN 4
    4 INFO 6
    5 DEBUG 7

  • 相关阅读:
    052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序
    051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1
    050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句
    049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句
    048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和
    047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用
    046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项
    045 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 07 for循环应用及局部变量作用范围
    剑指OFFER----面试题04.二维数组中的查找
    剑指OFFER----面试题03. 数组中重复的数字
  • 原文地址:https://www.cnblogs.com/afeng2010/p/10027708.html
Copyright © 2011-2022 走看看