log4j自定义日志输出
import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
import java.util.Map;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
/**
*
*/
public class LogUtil {
private static LogUtil logUtil = null;
private Logger log;
// 环境变量名称
private static final String OM_HOME = "OM_HOME";
private LogUtil(Class c) {
// 获取用户自定义环境变量
Map envMap = System.getenv();
String envPath = (String) envMap.get(OM_HOME);
//获取系统分隔符
String separator = System.getProperty("file.separator");
String log4jPath = (new StringBuilder()).append(envPath).append(separator).append("log4j.properties").toString();
PropertyConfigurator.configure(log4jPath);
log = Logger.getLogger(c);
}
public static LogUtil newInstance(Class c) {
if (logUtil == null) {
logUtil = new LogUtil(c);
}
return logUtil;
}
private String objToString(Object obj) {
if (obj instanceof Exception) {
if (((Exception) obj).getStackTrace() != null) {
ByteArrayOutputStream buf = new ByteArrayOutputStream();
((Exception) obj).printStackTrace(new PrintWriter(buf, true));
return buf.toString();
} else {
return ((Exception) obj).getMessage();
}
} else {
return obj.toString();
}
}
public void info(Object obj) {
log.info(objToString(obj));
}
public void debug(Object obj) {
log.debug(objToString(obj));
}
public void error(Object obj) {
log.error(objToString(obj));
}
public void fatal(Object obj) {
log.fatal(objToString(obj));
}
public void warn(Object obj) {
log.warn(objToString(obj));
}
}
log4j.properties 配置文件
log4j.rootLogger=INFO,R
#log4j.logger.com.zte.soa=OFF,FATAL,ERROR,WARN,INFO,DEBUG,ALL
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#log4j.appender.R=org.apache.log4j.RollingFileAppender
#log4j.appender.R.File=log.txt
#log4j.appender.R.MaxFileSize=500KB
#log4j.appender.R.MaxBackupIndex=10
#log4j.appender.R.layout=org.apache.log4j.PatternLayout
#log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] [%c] [%p] - %m%n
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%c] [%p] - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
#log4j.appender.R.File=
log4j.appender.R.File=XXXX
log4j.appender.R.MaxBackupIndex=30
log4j.appender.R.MaxFileSize=2048KB
log4j.appender.R.encoding=UTF-8