zoukankan      html  css  js  c++  java
  • log4j配置文件及java调用 每个级别输出到不同的文件

    #配置根Logger
    log4j.rootLogger = DEBUG , RollingFile,CONSOLE
    
    
    #文件大小达到一定尺寸的时候创建一个新的文件
    log4j.appender.RollingFile=org.apache.log4j.RollingFileAppender  
    #指定消息的最低层次
    log4j.appender.RollingFile.Threshold=DEBUG 
    #消息立即输出 默认为true
    log4j.appender.RollingFile.ImmediateFlush=true  
    #指定消息输出到mylog.txt文件。
    log4j.appender.RollingFile.File=/sdzw/ibp/log/project/RollingLog.log   
    #将消息增加到指定文件中 默认值是true false指将消息覆盖指定的文件内容
    log4j.appender.RollingFile.Append=true
    #后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件
    log4j.appender.RollingFile.MaxFileSize=50MB  
    #指定可以产生的滚动文件的最大数
    log4j.appender.RollingFile.MaxBackupIndex=10
    log4j.appender.RollingFile.layout=org.apache.log4j.PatternLayout  
    log4j.appender.RollingFile.layout.ConversionPattern=%40d{[yyyy-MM-dd HH:mm:ss-S]} [%-5p] [ %-3.3r] [%-10.10c] [%l]  [%x] --> %n %m %n
    
    
    #控制台
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender   
    log4j.appender.CONSOLE.Threshold=DEBUG 
    log4j.appender.CONSOLE.ImmediateFlush=true  
    #指定输出控制台 默认System.out
    log4j.appender.CONSOLE.Target=System.err   
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
    log4j.appender.CONSOLE.layout.ConversionPattern=%40d{[yyyy-MM-dd HH:mm:ss-S]} [%-5p] [ %-3.3r] [%-10.10c] [%l]  [%x] --> %n %m %n
    
    
    #每天产生一个日志文件
    log4j.logger.aaa= info,DailyRollingFile
    #是否集成到rootLogger输出 
    log4j.additivity.aaa=false 
    
    log4j.appender.DailyRollingFile=org.apache.log4j.DailyRollingFileAppender  
    log4j.appender.DailyRollingFile.Threshold=DEBUG  
    log4j.appender.DailyRollingFile.ImmediateFlush=true  
    log4j.appender.DailyRollingFile.File=/sdzw/ibp/log/project/DailyLog.log   
    log4j.appender.DailyRollingFile.Append=true
    #指定文件滚动频率 '.'yyyy-MM: 每月 '.'yyyy-ww: 每周  '.'yyyy-MM-dd: 每天 '.'yyyy-MM-dd-a: 每天的午夜和正午更新一个log日志 '.'yyyy-MM-dd-HH: 每小时 '.'yyyy-MM-dd-HH-mm: 每分钟
    log4j.appender.DailyRollingFile.DatePattern='.'yyyy-ww  
    log4j.appender.DailyRollingFile.layout=org.apache.log4j.PatternLayout  
    log4j.appender.DailyRollingFile.layout.ConversionPattern=%40d{[yyyy-MM-dd HH:mm:ss-S]} [%-5p] [ %-3.3r] [%-10.10c] [%l]  [%x] --> %n %m %n
    
    
    
    #配置日志信息的格式 
    #org.apache.log4j.HTMLLayout(以HTML表格形式布局) 
    #org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
    #org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
    #org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
    
    #HTMLLayout 选项
    #log4j.appender.****.layout=org.apache.log4j.HTMLLayout
    #默认值是false,输出java文件名称和行号   
    #og4j.appender.****.layout.LocationInfo=true
    #默认值是 Log4J Log Messages
    #og4j.appender.****.layout.Title=my app file
    
    #SimpleLayout
    # log4j.appender.logfile.layout = org.apache.log4j.SimpleLayout
    
    #XMLLayout 选项
    #log4j.appender.****.layout=org.apache.log4j.XMLLayout
    #默认值是false,输出java文件名称和行号   
    #og4j.appender.****.layout.LocationInfo=true
    
    #文件
    log4j.appender.FILE=org.apache.log4j.FileAppender 
    log4j.appender.FILE.Threshold=DEBUG  
    log4j.appender.FILE.ImmediateFlush=true  
    log4j.appender.FILE.File=/sdzw/ibp/log/project/FileLog.log   
    log4j.appender.FILE.Append=true
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout   
    log4j.appender.FILE.layout.ConversionPattern=%40d{[yyyy-MM-dd HH:mm:ss-S]} [%-5p] [ %-3.3r] [%-10.10c] [%l]  [%x] --> %n %m %n
    
    
    #邮件
    log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender   
    log4j.appender.MAIL.Threshold=DEBUG   
    log4j.appender.MAIL.BufferSize=10
    log4j.appender.MAIL.From=yourmail@gmail.com  
    log4j.appender.MAIL.SMTPHost=smtp.gmail.com  
    log4j.appender.MAIL.Subject=Log4J Message   
    log4j.appender.MAIL.To=yourmail@gmail.com   
    log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout   
    log4j.appender.MAIL.layout.ConversionPattern=%40d{[yyyy-MM-dd HH:mm:ss-S]} [%-5p] [ %-3.3r] [%-10.10c] [%l]  [%x] --> %n %m %n
    
    
    #数据库
    #数据库的链接会有问题,可以重写org.apache.log4j.jdbc.JDBCAppender的getConnection() 使用数据库链接池去得链接,可以避免insert一条就链接一次数据库
    log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender   
    log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test 
    log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver   
    log4j.appender.DATABASE.user=root   
    log4j.appender.DATABASE.password=   
    log4j.appender.DATABASE.sql=INSERT INTO SS_LOG4J_LOG (PRIORITY,LOGDATE,CLASS,METHOD,MSG) VALUES('%p','%d{yyyy-MM-dd HH:mm:ss}','%C','%M','%m')  
    log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout  
    log4j.appender.DATABASE.layout.ConversionPattern=%40d{[yyyy-MM-dd HH:mm:ss-S]} [%-5p] [ %-3.3r] [%-10.10c] [%l]  [%x] --> %n %m %n
    
    
    #socket
    log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender   
    log4j.appender.SOCKET.RemoteHost=localhost   
    log4j.appender.SOCKET.Port=5001
    log4j.appender.SOCKET.LocationInfo=true
    log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout   
    log4j.appender.SOCET.layout.ConversionPattern=%40d{[yyyy-MM-dd HH:mm:ss-S]} [%-5p] [ %-3.3r] [%-10.10c] [%l]  [%x] --> %n %m %n

    调用:

    public class TestLog {
    
        Logger logger = Logger.getLogger(TestLog.class);
        Logger logger2 = Logger.getLogger("aaa");
        private void test1() {
            logger.debug("debug---");
            logger.info("info---");
            logger.error("warn---");
            
            logger2.debug("debug2---");
            logger2.info("info2---");
            logger2.error("warn2---");
        }
        
        public static void main(String[] args) {
            TestLog testLog = new TestLog();
            testLog.test1();
    
        }
    
    }
    RollingLog.log文件:
                   [2017-06-28 15:18:22-731] [DEBUG] [ 0  ] [st.TestLog] [com.test.TestLog.test1(TestLog.java:10)]  [] --> 
     debug--- 
                   [2017-06-28 15:18:22-735] [INFO ] [ 4  ] [st.TestLog] [com.test.TestLog.test1(TestLog.java:11)]  [] --> 
     info--- 
                   [2017-06-28 15:18:22-736] [ERROR] [ 5  ] [st.TestLog] [com.test.TestLog.test1(TestLog.java:12)]  [] --> 
     warn--- 
    
    DailyLog.log 文件:
                   [2017-06-28 15:06:23-191] [INFO ] [ 12 ] [aaa       ] [com.test.TestLog.test1(TestLog.java:15)]  [] --> 
     info2--- 
                   [2017-06-28 15:06:23-192] [ERROR] [ 13 ] [aaa       ] [com.test.TestLog.test1(TestLog.java:16)]  [] --> 
     warn2--- 
  • 相关阅读:
    arcpy脚本使用多接图表图斑对对应多幅影像进行裁边处理
    小辉轶事
    一些常ArcGIS常用简单算法 C#
    Wowza 4.5 修改 manager 端口号
    win7x64 串口程序无法运行,提示:component 'MSCOMM32.OCX' or one of its dependencies not correctlu registered。。。
    win7不正常开关机,系统恢复选项
    远程桌面+程序自启动
    Beyond Compare4 激活
    edusoho 支持同一账号多人同时登录
    windows 2008 gpt
  • 原文地址:https://www.cnblogs.com/wangguoning/p/7089892.html
Copyright © 2011-2022 走看看