1. 程式人生 > >log4j(六)——log4j.properties簡單配置樣例說明

log4j(六)——log4j.properties簡單配置樣例說明

通過 感受 level 什麽 單位 com str 方式 目的

一、測試環境

  與log4j(一)——為什麽要使用log4j?一樣,這裏不再重述

二:老規矩,先來個例子,然後再聊聊感受

  (1)使用配文件的方式,是不是感覺非常的清爽,如果不在程序中讀取配置文件就更加的清爽啦!這裏為了簡便,就是單單使用一個Java類來做實驗了。

package com.sc.log4j;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;


/**
 * Created by Miss黃
 
*/ public class UseLog4j { //日誌記錄器 private static Logger LOGGER = LogManager.getLogger(UseLog4j.class); //程序入口——主函數 public static void main(String[]args) { //讀取使用Java的特性文件編寫的配置文件 PropertyConfigurator.configure( "log4j.properties" ); //輸出日誌信息,測試日誌級別的作用(配置在配置文件中),僅僅輸出大於等於目前有效級別的日誌信息
LOGGER.debug("[1]-my level is DEBUG Godtrue 說:今天天氣很好呀!"); LOGGER.info("[2]-my level is INFO"); LOGGER.warn("[3]-my level is WARN"); LOGGER.error("[4]-my level is ERROR"); } }

  (2)下面的配置文件也僅是列舉了幾個常見的輸出目的地的配置方式,如有更多需求可以參看官網文檔,其中輸出到控制臺和達到一定的閾值自動回滾的文件的方式是最長用,要重點了解

###
# 在代碼中配置log4j環境的方式,我們已經見識過了,是不是感覺比較麻煩,我們試試使用配置文件的方式是否使您的應用程序更加的靈活。
# Log4j支持兩種配置文件格式,一種是XML格式的文件,一種是Java特性的文件(鍵
=值)。 # 下面我們先試試使用Java特性文件做為配置文件的方式 # # 以下的設置參數,前文已經講過是怎麽回事的,這裏就不再重復了 # ### ### # 設置根記錄器的配置,其語法為:log4j.rootLogger = [ level ] , appenderName1, appenderName2, …appenderNameN # level用於設置日誌記錄的優先級,有系統自定義的8中類型,也可以自定義,官方建議只是用這四種 ERROR>WARN>INFO>DEBUG # appenderNameN用於設置日誌的輸出地,可以設置多個,可以自定義名稱 ### log4j.rootLogger = debug,stdout,D,E,F ### # 設置日誌記錄的輸出地,其語法為: # log4j.appender.appenderName = fully.qualified.name.of.appender.class #   log4j.appender.appenderName.option1 = value1 #   … #  log4j.appender.appenderName.optionN = valueN # fully.qualified.name.of.appender.class:指日誌輸出目的類的全路徑類名,有好許多預定義,下面介紹四個常用的 # optionN/valueN :分別是指對應的輸出目的地屬性和設置的屬性值 # # 如果對應的屬性,仍然是對象級別的話,可以通過繼續 . 的形式來設置對應的屬性 # ### ### # 輸出信息到控制臺,其可選的配置有如下幾個: # 1)Threshold:設置日誌信息輸出的級別 # 2)ImmediateFlush:設置日誌信息是否被立即輸出,默認為TRUE,立即輸出 # 3)Target:設置日誌信息輸出的目標流,有兩種值System.out和System.err ,默認值System.out(err為紅色,out為黑色) # 4)layout:設置日誌信息輸出的樣式 # 5)Encoding:設置文件的編碼格式,默認和系統平臺的編碼格式保持一致 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.err log4j.appender.stdout.Encoding = Utf-8 log4j.appender.stdout.Threshold = INFO log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n ### # 輸出信息到文件,其常用的可選的配置有如下幾個: # 1)Threshold:設置日誌信息輸出的級別 # 2)ImmediateFlush:設置日誌信息是否被立即輸出,默認為TRUE,立即輸出 # 3)File:設置日誌信息輸出全路徑,比如:E://logs/FileAppender.log # 4)layout:設置日誌信息輸出的樣式 # 5)Encoding:設置文件的編碼格式,默認和系統平臺的編碼格式保持一致 # 6)Append:設置是否將日誌消息追加到指定的文件中,默認值true,將消息追加到指定文件中,false指將消息覆蓋指定的文件內容 ### log4j.appender.D = org.apache.log4j.FileAppender log4j.appender.D.File = D://logs/FileAppender.log log4j.appender.D.Append = true log4j.appender.D.Threshold = ERROR log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = [%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n ### # 輸出信息到文件,但是這個文件是可控的,可以配置多久產生一個新的日誌信息文件,其常用的可選的配置有如下幾個: # 1)Threshold:設置日誌信息輸出的級別 # 2)ImmediateFlush:設置日誌信息是否被立即輸出,默認為TRUE,立即輸出 # 3)File:設置日誌信息輸出全路徑,比如:E://logs/DailyRollingFileAppender.log # 4)layout:設置日誌信息輸出的樣式 # 5)Encoding:設置文件的編碼格式,默認和系統平臺的編碼格式保持一致 # 6)Append:設置是否將日誌消息追加到指定的文件中,默認值true,將消息追加到指定文件中,false指將消息覆蓋指定的文件內容 # 7)DatePattern:設置文件回滾的時間樣式 # ‘.‘yyyy-MM 每月 # ‘.‘yyyy-ww 每周 # ‘.‘yyyy-MM-dd 每天 # ‘.‘yyyy-MM-dd-a 每天兩次 # ‘.‘yyyy-MM-dd-HH 每小時 # ‘.‘yyyy-MM-dd-HH-mm 每分鐘 ### log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File =D://logs/DailyRollingFileAppender.log log4j.appender.E.Append = true log4j.appender.E.Threshold = WARN log4j.appender.E.DatePattern = ‘.‘yyyy-MM-dd-HH-mm log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern = [%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n ### # 輸出信息到文件,但是這個文件是可控的,當文件的大小達到某個閾值的時候,日誌文件會自動回滾,其常用的可選的配置有如下幾個: # 1)Threshold:設置日誌信息輸出的級別 # 2)ImmediateFlush:設置日誌信息是否被立即輸出,默認為TRUE,立即輸出 # 3)File:設置日誌信息輸出全路徑,比如:E://logs/RollingFileAppender.log # 4)layout:設置日誌信息輸出的樣式 # 5)Encoding:設置文件的編碼格式,默認和系統平臺的編碼格式保持一致 # 6)Append:設置是否將日誌消息追加到指定的文件中,默認值true,將消息追加到指定文件中,false指將消息覆蓋指定的文件內容 # 7)MaxFileSize:設置當文件達到此閾值的時候自動回滾,單位可以是KB,MB,GB,默認單位是KB # 8)MaxBackupIndex:設置保存備份回滾日誌的最大個數 ### log4j.appender.F = org.apache.log4j.RollingFileAppender log4j.appender.F.File =D://logs/RollingFileAppender.log log4j.appender.F.Append = true log4j.appender.F.Threshold = INFO log4j.appender.F.MaxFileSize = 1 log4j.appender.F.MaxBackupIndex = 5 log4j.appender.F.layout = org.apache.log4j.PatternLayout log4j.appender.F.layout.ConversionPattern =[%d{yyyy-MM-dd HH\:mm\:ss\:SSS}] [%-5p] [method\:%l]%n%m%n%n

三:感受

1)使用配置文件來控制日誌的輸出,相當的靈活方便,對於業務程序本身的耦合性也變得最低了,這也是在實際的工作中常常使用的一種方式

2)我這裏為了方便演示和研究配置文件怎麽配置的,就沒有加入其它框架了,也沒有采用建一個JavaWeb項目通過配置文件的方式來控制了,實際工作中應該如此的

3)這裏的關註點是配置文件怎麽配置,我在註釋中做了足夠多的說明,如果看過前面的博文,對於這些東西相對一定很容易理解,畢竟日誌框架就是幹這些事情的

4)這裏列舉的配置方式並不完整,畢竟還有許多的日誌輸出目的地不在其內,不過他們是常用的

5)每一個還是要好好的試驗一下,理解起來才更深刻的,否則下次項目出問題了,項目負責人讓你解決,你都不知道到哪裏找日誌文件來分析的

文章轉自:http://www.cnblogs.com/godtrue/p/6443995.html

log4j(六)——log4j.properties簡單配置樣例說明