JAVA中利用LOG4J写日志

2750人阅读 评论(1) 收藏 举报

JAVA利用LOG4J写日志

本人最近做的一个项目中遇到的写日志,就记录下来,还不完善,希望大家有好的意见.

接口定义
public interface Logger {

 /////////// 定数宣言 //////////
 /** ファイル定数 */
 public static final String LOG4JFILE = "log4j.properties";

 /** ログ用 */
 public static final String SYSTEMLOG = "Systemlog";

 // public void debug(String message) throws Exception;
 // 
 // public void info(String message) throws Exception;
 // 
 // public void warn(String message) throws Exception;
 // 
 // public void error(String errorCode,String message) throws Exception;

}

LOG4J的封装


package jp.co.**.**.com.frw.log;

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


public class LoggerAdapter implements jp.co.yachiyobank.inf.com.frw.log.Logger {

 ////////// クラス変数 //////////
 /** log4jのインスタンス */
 private static Logger log4j = null;

 /**
  * ログクラスの実例。<BR>
  *
  * @param なし
  * @return なし
  * @exception なし
  */
 public static void getInstance() {
  PropertyConfigurator.configure(LOG4JFILE);
  log4j = Logger.getLogger(SYSTEMLOG);
 }

 /**
  * debugログの編集、出力を行う。<BR>
  *
  * @param message 出力内容
  * @return なし
  * @exception なし
  */
 public static void debug(Object message) {
  if (log4j == null) {
   getInstance();
  }
  // ログ出力
  log4j.debug(message);
 }

 /**
  * debugログの編集、出力を行う。<BR>
  *
  * @param message 出力内容
  * @param throwable
  * @return なし
  * @exception なし
  */
 public static void debug(Object message, Throwable throwable) {
  if (log4j == null) {
   getInstance();
  }
  // ログ出力
  log4j.debug(message, throwable);
 }

 /**
  * infoログの編集、出力を行う。<BR>
  *
  * @param message 出力内容
  * @return なし
  * @exception なし
  */
 public static void info(Object message) {
  if (log4j == null) {
   getInstance();
  }
  // ログ出力
  log4j.info(message);

 }

 /**
  * infoログの編集、出力を行う。<BR>
  *
  * @param message 出力内容
  * @param throwable
  * @return なし
  * @exception なし
  */
 public static void info(Object message, Throwable throwable) {
  if (log4j == null) {
   getInstance();
  }
  // ログ出力
  log4j.info(message, throwable);

 }

 /**
  * warnログの編集、出力を行う。<BR>
  *
  * @param message  出力内容
  * @param throwable
  * @return なし
  * @exception なし
  */
 public static void warn(Object message, Throwable throwable) {
  if (log4j == null) {
   getInstance();
  }
  // ログ出力
  log4j.warn(message, throwable);

 }

 /**
  * warnログの編集、出力を行う。<BR>
  *
  * @param message  出力内容
  * @return なし
  * @exception なし
  */
 public static void warn(Object message) {
  if (log4j == null) {
   getInstance();
  }
  // ログ出力
  log4j.warn(message);

 }

 /**
  * errorログの編集、出力を行う。<BR>
  *
  * @param message 出力内容
  * @return なし
  * @exception なし
  */
 public static void error(Object message) {
  if (log4j == null) {
   getInstance();
  }
  // ログ出力
  log4j.error(message);

 }

 /**
  * errorログの編集、出力を行う。<BR>
  *
  * @param throwable
  * @param message 出力内容
  * @return なし
  * @exception なし
  */
 public static void error(Object message, Throwable throwable) {
  if (log4j == null) {
   getInstance();
  }
  // ログ出力
  log4j.error(message, throwable);

 }

}

LOG的格式编辑


package jp.co.**.**.com.frw.log;
/**
 * ログ出力処理クラス。<br>
 * <PRE>
 * (1)デバーグレベルログを出力。
 * (2)エラーレベルログを出力。
 * (3)インフォーレベルログを出力。
 * (4)Warnレベルログを出力。
 * </PRE>
 * <br>
 */
public final class LogUtils {
 
    ////////// 定数宣言 //////////
 /**
  * ログセファルディ
  */
 private final static String SEPARATOR = " ";
 
 /**
  * ログ内容を準備をします。<BR>
  * @param className クラス名
  * @param gyoumuName 業務名
  * @param message 出力内容
  * @param sql sql内容
  * @return logBuffer 準備をした内容
  */
 public static StringBuffer prepareLogMessage( Class className,String gyoumuName,
    String message,  String sql) {
  
  StringBuffer logBuffer = new StringBuffer();
  String name=null;
  
  if(className!=null){
      name=className.getName();
   logBuffer.append(name).append(SEPARATOR);
  }
  if(gyoumuName!=null){
  logBuffer.append(gyoumuName).append(SEPARATOR);
  }
  if (message != null) {
   logBuffer.append(message).append(SEPARATOR);
  }else {
   logBuffer.append(SEPARATOR);
  }
  
  if(sql!=null){
   logBuffer.append(sql).append(SEPARATOR);
  }else {
   logBuffer.append(SEPARATOR);
  }
        //結果が返します
  return logBuffer;
 }
 
 /**
  * 非SQL用 ログ内容を準備をします。<BR>
  * @param className クラス名
  * @param gyoumuName 業務名
  * @param message 出力内容
  * @return logBuffer 準備をした内容
  */
 public static StringBuffer setTextMessate(Class className,String gyoumuName, String message){
  String sql=null;
  StringBuffer logBuffer = prepareLogMessage(className,gyoumuName,message,sql);
  return logBuffer;
 }
 
 /**
  * SQL用 ログ内容を準備をします。<BR>
  * @param className クラス名
  * @param gyoumuName 業務名
  * @param message 出力内容
  * @param sql sql内容
  * @return logBuffer 準備をした内容
  */
 public static StringBuffer setTextMessate(Class className,String gyoumuName, String message,String sql){
  StringBuffer logBuffer = prepareLogMessage(className,gyoumuName,message,sql);
  return logBuffer;
 }
 
 /**
  * ログ内容を準備をします。<BR>
  *
  * @param message 出力内容
  * @return logBuffer 準備をした内容
  */
 public static StringBuffer setTextMessate(String message){
  Class className=null;
  String gyoumuName=null;
  String sql=null;
  StringBuffer logBuffer = prepareLogMessage(className,gyoumuName,message,sql);
  return logBuffer;
 }
 
 /**
  * ログ内容を準備をします。<BR>
  *
  * @param gyoumuName 業務名
  * @param message 出力内容
  * @return logBuffer 準備をした内容
  */
 public static StringBuffer setTextMessate(String gyoumuName,String message){
  Class className=null;
  String sql=null;
  StringBuffer logBuffer = prepareLogMessage(className,gyoumuName,message,sql);
  return logBuffer;
 }
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2250128次
    • 积分:20732
    • 等级:
    • 排名:第366名
    • 原创:287篇
    • 转载:205篇
    • 译文:3篇
    • 评论:439条
    最新评论