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;
}
}