log4j 的配置文件:log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender">
<param name="Encoding" value="UTF-8" />
<!-- 设置通道file和输出方式:org.apache.log4j.RollingFileAppender -->
<param name="File" value="F:/work/logs/myLog.log" />
<!--设置File参数:日志输出文件名-->
<param name="Append" value="true" />
<!--设置是否在重新启动服务时,在原有日志的基础添加新日志-->
<!-- <param name="MaxBackupIndex" value="10" /> -->
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%p]: %m%n" />
<!--设置输出文件项目和格式-->
</layout>
<!--滤镜设置输出的级别-->
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="levelMin" value="info" />
<param name="levelMax" value="error" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
<root><!-- 设置接收所有输出的通道 -->
<priority value="info" /> <!-- 输出级别项 -->
<appender-ref ref="activexAppender" />
</root>
</log4j:configuration>
log4j的默认使用(一):
import org.apache.log4j.Logger;
private static Logger logger = Logger.getLogger(当前类名.class);
logger.info("==================");
log4j的稍微变形使用(二):
package com.ly.util;
import org.apache.log4j.Logger;
public class LoggerUtil {
private static Logger logger = null;
static {
logger = Logger.getLogger(LoggerUtil.class);
}
private static String getCaller() {
StackTraceElement stack[] = (new Throwable()).getStackTrace();
if(stack.length >= 3 && stack[2].getClassName() != null && !"".equals(stack[2].getClassName())) {
String className = stack[2].getClassName();
int lastDotIndex = className.lastIndexOf(".");
if(lastDotIndex + 1 < className.length()) {
return "["+className.substring(lastDotIndex + 1)+":"+stack[2].getLineNumber()+"]";
}
}
return "";
}
public static void info(String message) {//BusinessIdUtil.getCurrentBusinessId()产生一个序列号
logger.info(BusinessIdUtil.getCurrentBusinessId() + " " + getCaller() + " " + message);
}
public static void info(String message, Throwable t) {
logger.info(BusinessIdUtil.getCurrentBusinessId() + " " + getCaller() + " " + message, t);
}
public static void debug(String message) {
logger.debug(BusinessIdUtil.getCurrentBusinessId() + " " + getCaller() + " " + message);
}
public static void debug(String message, Throwable t) {
logger.debug(BusinessIdUtil.getCurrentBusinessId() + " " + getCaller() + " " + message, t);
}
public static void warn(String message) {
logger.warn(BusinessIdUtil.getCurrentBusinessId() + " " + getCaller() + " " + message);
}
public static void warn(String message, Throwable t) {
logger.warn(BusinessIdUtil.getCurrentBusinessId() + " " + getCaller() + " " + message, t);
}
public static void error(String message) {
logger.error(BusinessIdUtil.getCurrentBusinessId() + " " + getCaller() + " " + message);
}
public static void error(String message, Throwable t) {
logger.error(BusinessIdUtil.getCurrentBusinessId() + " " + getCaller() + " " + message, t);
}
}
LoggerUtil.info("=================");