log 4 jログの構成に関する質問

2395 ワード

サーバ上でlog 4 jを構成するもローカルでlog 4 jを構成するも同じである.まず必ずlog 4 jパッケージlog 4 j-1.2.9を導入する.JAr 2、そして必ず1つのプロファイルがあります.通常、srcの下に置かれている名前(log 4 j.properties)の内容は、大体次のように構成されています.
3、log 4 jを配置する.properties log4j.logger.Log4j_taskDAO=INFO,test//ここのLog 4 j_taskDAOは自分で勝手に定義した名前です.つまり、あるクラスでlog 4 jでエラーを表示しようとしたときに呼び出された名前です.ここのtestも自分で定義したものです.つまり、次の(log 4 j.appender.test)のtestです.
log4j.additivity.org.apache=false log4j.appender.test=org.apache.log4j.DailyRollingFileAppender log4j.appender.test.Threshold=DEBUG log4j.appender.test.ImmediateFlush=true log4j.appender.test.Append=true log4j.appender.test.Encoding=UTF-8 log4j.appender.test.File=/www/log4j.txt//ここでは現在のlog 4 jの格納経路log 4 jを定義する.appender.test.DatePattern='.'yyyy-MM-dd log4j.appender.test.layout=org.apache.log4j.PatternLayout log4j.appender.test.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l\: %m %x %n
以上はlog 4 jのプロファイルでの書き方です
4、それからこのlog 4 jを呼び出します.あるクラスでこのlog 4 jを呼び出したいときは、public static Logger=Loggerと書きます.getLogger("Log4j_taskDAO");ここのlog 4 j_taskDAOはプロファイルで定義されている//これは初期化に相当する//この文は一般的にクラスに置いてメソッドに置かない
5、必要な情報を配置されたパスの下に打ち込む
次に、現在のlog 4 jの問題を印刷したい場合は、loggerと書きます.info("aaa"); 
一般的にtry catchでログを書き込む例は次のとおりです.
	public static void main(String [] args) {
		
		//Log logger = LogFactory.getLog(test_1.class); 
		 Logger logger = Logger.getLogger("logFile"); 
		
		 
			Scanner scan=new Scanner(System.in);
			String str =scan.next();
				
			int Num=0;
			try {
				Num = Integer.parseInt(str);
				logger.info("      "+Num);
			} catch (NumberFormatException e) {      //    ,    
				logger.error(e);
				System.out.println("         ");
			}
				
			System.out.println("       "+Num);
			
		
	}

あるいは自分で方法を書く
    /* 
     *       
	 * @param logfile         
	 * @param content     
	 * @return void
     */
	public static void writelog(String logfile,String content){
		try {
            OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(new File(logfile),true),"UTF-8");
            BufferedWriter writer=new BufferedWriter(write);   
            writer.write(content);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
	}

以上log 4 jの使い方ですが、一般的にサーバ上でエラーをクエリーするのに使われています