Java log4j日志使用
2016-03-17 11:24
351 查看
1. 日志配置
web.xml配置文件:
<servlet>
<servlet-name>LogServer</servlet-name>
<servlet-class>sys.LogServer</servlet-class>
<init-param>
<param-name>log4jpropfile</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
log4j.properties配置文件:
log4j.rootLoger=ERROR
log4j.logger.Trace=TRACE,R0
log4j.logger.Debug=DEBUG,R1
log4j.logger.Info=INFO,R2
log4j.logger.Error=ERROR,R3
log4j.appender.R0=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R0.Append=true
log4j.appender.R0.File=/logs/trace
log4j.appender.R0.DatePattern=yyyy-MM-dd'.log'
log4j.appender.R0.layout=org.apache.log4j.PatternLayout
log4j.appender.R0.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} :%m%n
log4j.appender.R1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R1.Append=true
log4j.appender.R1.File=/logs/debug
log4j.appender.R1.DatePattern=yyyy-MM-dd'.log'
log4j.appender.R1.layout=org.apache.log4j.PatternLayout
log4j.appender.R1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} :%m%n
log4j.appender.R2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R2.Append=true
log4j.appender.R2.File=/logs/info
log4j.appender.R2.DatePattern=yyyy-MM-dd'.log'
log4j.appender.R2.layout=org.apache.log4j.PatternLayout
log4j.appender.R2.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} :%m%n
log4j.appender.R3=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R3.Append=true
log4j.appender.R3.File=/logs/error
log4j.appender.R3.DatePattern=yyyy-MM-dd'.log'
log4j.appender.R3.layout=org.apache.log4j.PatternLayout
log4j.appender.R3.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} :%m%n
2. 日志类
日志类LogServer.java,由servlet加载
public class LogServer extends extends HttpServlet {
private static String strContextPath=null;
private static String strAppPath=null;
private static String strClassesPath=null;
private static String strLogPath=null;
private static Logger logTrace=null;
private static Logger logDebug=null;
private static Logger logInfo=null;
private static Logger logError=null;
public static int LEVEL_INFO=10;
public static int LEVEL_DEBUG=20;
public static int LEVEL_TRACE=30;
//servlet初始化方法
public void init() throws ServletException {
super.init();
initLog4j();
}
protected void initLog4j() {
strContextPath=getServletContext().getContextPath();
StringBuffer path=new StringBuffer(64);
strAppPath=getServletContext().getRealPath(File.separator);
path.append(strAppPath);
if(strAppPath.lastIndexOf(File.separator) != strAppPath.length()-1) {
path.append(File.separator);
}
path.append("WEB-INF");
path.append(File.separator);
path.append("classes");
strClassesPath=path.toString();
//日志文件存放目录
path.delete(0,path.length());
path.append(File.separator);
path.append("logs");
File logRootPath=new File(path.toString());
if(!logRootPath.exists()) {
logRootPath.mkdirs();//创建目录
}
strLogPath=path.toString();
//加载log4j日志配置文件
path.delete(0,path.length());
path.append(strAppPath);
path.append(getInitParameter("log4jpropfile"));
PropertyConfigurator.configure(path.toString());
path.delete(0, path.length());
}
//记录日志方法
public static void printByLevel(int logLevel, String log) {
if(logLevel<LEVEL_DEBUG) {
getLogInfo().info(log);
}else if(logLevel<LEVEL_TRACE) {
getLogDebug().info(log);
}else{
getLogTrace().info(log);
}
}
public static Logger getLogTrace() {
if(logTrace==null) {
logTrace=Logger.getLogger("Trace");
}
return logTrace;
}
public static Logger getLogDebug() {
if(logDebug==null) {
logDebug=Logger.getLogger("Debug");
}
return logDebug;
}
public static Logger getLogInfo() {
if(logInfo==null) {
logInfo=Logger.getLogger("Info");
}
return logInfo;
}
public static Logger getLogError() {
if(logError==null) {
logError=Logger.getLogger("Error");
}
return logError;
}
//打印异常日志
public static void appendErr(Exception e) {
StringWriter sw=new StringWriter(1024*4);
e.printStackTrace(new PrintWriter(sw));
getLogError().error(sw.toString());
}
}
3. 日志记录
日志记录的调用:
int logLevel=LogServer.LEVEL_INFO;
LogServer.printByLevel(logLevel, "日志内容");
异常日志调用:
LogServer.appendErr(e);
e为程序中捕获的异常,为Exception类型
web.xml配置文件:
<servlet>
<servlet-name>LogServer</servlet-name>
<servlet-class>sys.LogServer</servlet-class>
<init-param>
<param-name>log4jpropfile</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
log4j.properties配置文件:
log4j.rootLoger=ERROR
log4j.logger.Trace=TRACE,R0
log4j.logger.Debug=DEBUG,R1
log4j.logger.Info=INFO,R2
log4j.logger.Error=ERROR,R3
log4j.appender.R0=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R0.Append=true
log4j.appender.R0.File=/logs/trace
log4j.appender.R0.DatePattern=yyyy-MM-dd'.log'
log4j.appender.R0.layout=org.apache.log4j.PatternLayout
log4j.appender.R0.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} :%m%n
log4j.appender.R1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R1.Append=true
log4j.appender.R1.File=/logs/debug
log4j.appender.R1.DatePattern=yyyy-MM-dd'.log'
log4j.appender.R1.layout=org.apache.log4j.PatternLayout
log4j.appender.R1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} :%m%n
log4j.appender.R2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R2.Append=true
log4j.appender.R2.File=/logs/info
log4j.appender.R2.DatePattern=yyyy-MM-dd'.log'
log4j.appender.R2.layout=org.apache.log4j.PatternLayout
log4j.appender.R2.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} :%m%n
log4j.appender.R3=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R3.Append=true
log4j.appender.R3.File=/logs/error
log4j.appender.R3.DatePattern=yyyy-MM-dd'.log'
log4j.appender.R3.layout=org.apache.log4j.PatternLayout
log4j.appender.R3.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} :%m%n
2. 日志类
日志类LogServer.java,由servlet加载
public class LogServer extends extends HttpServlet {
private static String strContextPath=null;
private static String strAppPath=null;
private static String strClassesPath=null;
private static String strLogPath=null;
private static Logger logTrace=null;
private static Logger logDebug=null;
private static Logger logInfo=null;
private static Logger logError=null;
public static int LEVEL_INFO=10;
public static int LEVEL_DEBUG=20;
public static int LEVEL_TRACE=30;
//servlet初始化方法
public void init() throws ServletException {
super.init();
initLog4j();
}
protected void initLog4j() {
strContextPath=getServletContext().getContextPath();
StringBuffer path=new StringBuffer(64);
strAppPath=getServletContext().getRealPath(File.separator);
path.append(strAppPath);
if(strAppPath.lastIndexOf(File.separator) != strAppPath.length()-1) {
path.append(File.separator);
}
path.append("WEB-INF");
path.append(File.separator);
path.append("classes");
strClassesPath=path.toString();
//日志文件存放目录
path.delete(0,path.length());
path.append(File.separator);
path.append("logs");
File logRootPath=new File(path.toString());
if(!logRootPath.exists()) {
logRootPath.mkdirs();//创建目录
}
strLogPath=path.toString();
//加载log4j日志配置文件
path.delete(0,path.length());
path.append(strAppPath);
path.append(getInitParameter("log4jpropfile"));
PropertyConfigurator.configure(path.toString());
path.delete(0, path.length());
}
//记录日志方法
public static void printByLevel(int logLevel, String log) {
if(logLevel<LEVEL_DEBUG) {
getLogInfo().info(log);
}else if(logLevel<LEVEL_TRACE) {
getLogDebug().info(log);
}else{
getLogTrace().info(log);
}
}
public static Logger getLogTrace() {
if(logTrace==null) {
logTrace=Logger.getLogger("Trace");
}
return logTrace;
}
public static Logger getLogDebug() {
if(logDebug==null) {
logDebug=Logger.getLogger("Debug");
}
return logDebug;
}
public static Logger getLogInfo() {
if(logInfo==null) {
logInfo=Logger.getLogger("Info");
}
return logInfo;
}
public static Logger getLogError() {
if(logError==null) {
logError=Logger.getLogger("Error");
}
return logError;
}
//打印异常日志
public static void appendErr(Exception e) {
StringWriter sw=new StringWriter(1024*4);
e.printStackTrace(new PrintWriter(sw));
getLogError().error(sw.toString());
}
}
3. 日志记录
日志记录的调用:
int logLevel=LogServer.LEVEL_INFO;
LogServer.printByLevel(logLevel, "日志内容");
异常日志调用:
LogServer.appendErr(e);
e为程序中捕获的异常,为Exception类型
相关文章推荐
- 解决eclipse Invalid Configuration Location .......configuration' is not writable
- Java day05 抽象类
- myeclipse连接方法
- 事件驱动的Java框架
- Java基础语法
- Java day05 继承 extends
- 配置Java的环境变量
- Java——SAX解析XML文件
- SpringMvc微信JS-API获取地理位置
- [Java]不重复随机数生成简易算法
- Eclipse与MyEclipse的选择问题
- spring jms + activemq + maven搭建
- eclipse 新建 Dynamic Web Project时jsp文件404错误的解决办法
- Java中使用正则表达式
- Spring3.x JSR-303
- spring3
- Java day05 final 关键字
- spring3定时器简单配置
- Java day04 生成工具类文档
- java下的printf(jdk1.5+)