您的位置:首页 > 编程语言 > Java开发

JAVA LOG4J管理(续JAVA中LOG4J的封装)

2006-06-20 16:42 267 查看
/********************************************************************
 * 最終更新日:$Date: 2005/11/16 05:48:47 $ [$Revision: 1.11 $]
 * 最終更新者:$Author: LHJ_KK$
 * Copyright (c) 2004-2006 NNN ATA CORPORATION, All rights reserved.
 ********************************************************************/
package jp.co.**.**.core.logging;

import jp.co.**.**.core.constants.BaseConstant;

import org.apache.log4j.Category;
import org.apache.log4j.PropertyConfigurator;

/**
 * ログマネジャクラス<br>
 * 機能は以下の通り<br>
 * <ul>
 * <li>静態方法でインスタンスを実装する
 * <li>ログインスタンスの取得
 * </ul>
 * <br>
 * @since 1.0.0
 * @version <br>1.0.0 2005/09/30 新規作成
 * @author LHJ
 */
public class CategoryManage implements BaseConstant {
 /**
  * カテゴリーインスタンス
  */
 private static Category category = null;
 /**
  * 静態方法でインスタンスを実装する
  * log4j.properties
  */
 static {
  try {
   System.out.println("LOG4J ログマネージャ 初期化メッソド");
   PropertyConfigurator.configureAndWatch(LOG4JFILE);
   
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 /**
  * ログインスタンスの取得
  * @param thisclass カテゴリーのキー
  * @return Category カテゴリー
  */
 public static synchronized Category getInstance(String thisclass) {
  //20051103 UC.UP-1 陸宇 修正 STA
  if (!SERVERLOG.equals(thisclass)) {
   thisclass = SERVERLOG;
  }
  if (category == null) {
   category = Category.getInstance(thisclass);
  }
  //20051103 UC.UP-1 陸宇 修正 END
  return category;
 }
}

2.

package jp.co.nec.inf.frw.log;

import java.net.URL;

import jp.co.nec.inf.frw.com.FrwCst;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.xml.DOMConfigurator;

public class FrwAdapterLog implements FrwLog {
 
 public static final String XML_FILE_EXTENSION = ".xml";
 
 static{
  //log4j初期化
  URL url = FrwAdapterLog.class.getClassLoader().getResource(FrwCst.LOG4JFILE_LOCATION);
  
  if (FrwCst.LOG4JFILE_LOCATION.toLowerCase().endsWith(XML_FILE_EXTENSION)) {
   DOMConfigurator.configure(url);
  }
  else {
   PropertyConfigurator.configure(url);
  }
//  if (url != null) {
//   DOMConfigurator.configure(url);
//  } else {
//   DOMConfigurator.configure(System.getProperty("log4j.configuration", "log4j.xml"));
//  }
 }

 /** 
  * ロギング本体
  */
 private org.apache.log4j.Logger logger;

 /** 
  * コンストラクタ
  *
  * @param cls ログを出力するクラス
  */
 protected FrwAdapterLog(Class cls) {
  logger = Logger.getLogger(cls);
 }

 /**
  * 指定されたクラスでロギングを初期化します。
  *
  * @param cls ログを出力するクラス
  */
 public static FrwLog getInstance(Class cls) {
  FrwAdapterLog wrapper = new FrwAdapterLog(cls);
  return wrapper;
 }
 
 /**
  * ログクラスを置き直する。
  *
  *  @param cls ログクラス
  */
 public void resetLogger(Class cls) {
  logger = org.apache.log4j.Logger.getLogger(cls);
 }
 
 
 public void debug(String message, Throwable cause) {
  logger.debug(message,cause);
 }

 public void error(String message, Throwable cause) {
  logger.error(message,cause);
 }

 public void info(String message, Throwable cause) {
  logger.info(message,cause);
 }

 public void warn(String message, Throwable cause) {
  logger.warn(message,cause);
 }

 public void debug(String message) {
  logger.debug(message);
 }

 public void info(String message) {
  logger.info(message);
 }

 public void warn(String message) {
  logger.warn(message);
 }

 public void error(String message) {
  logger.error(message);
 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息