log4j簡單配置

寫在前面:web

  項目中因爲爲了查看項目相關調試信息,使用System.out.println()直接在控制檯打印不是很方便,故通常配置log4j,它能夠將信息輸出到文件中。spring

 

步驟:
apache

1.導入jar包:log4j-1.2.8.jarapp

2.編寫log4j配置文件:log4j.propertiesssh

### 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

3.在web.xml中配置log4j
  若是直接將log4j.properties文件放在src路徑下,那麼就不須要在web.xml文件配置相關信息了,項目會自動加載的spa

  反之就須要配置(利用spring的監聽器來加載,此時log4j.properties的位置能夠放到其餘地方):debug

      <!-- 在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();
    }
}

運行以後,就能夠看到控制檯 以及你的日誌文件中 會有相關的打印信息啦。。。。。日誌

  對於想要讓一些功能單獨打印日誌文件的,也能夠進行相關的設置code

### send mail information ###
log4j.logger.mailLogger=info,M
log4j.additivity.mailLogger = false
log4j.appender.M = org.apache.log4j.DailyRollingFileAppender
log4j.appender.M.File = d:/mail.log
log4j.appender.M.DatePattern = '.'yyyy-MM-dd
log4j.appender.M.Append = true
log4j.appender.M.layout = org.apache.log4j.PatternLayout
log4j.appender.M.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %5p %c{5}:%L - %m%n

  在相關的類中使用如下方式獲取就行了

//打印指定類的日誌到指定文件
    private static Logger mLogger = Logger.getLogger("mailLogger");

 

交流羣:527038646  嘻嘻嘻

相關文章
相關標籤/搜索