下载必备的jar
http://yunpan.cn/ccJEq3IQuEhA4 访问密码 a98f
log4j-core-2.3.jar
log4j-api-2.3.jar
先在src下面创建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 = "config_Console" class = "org.apache.log4j.ConsoleAppender" >
< layout class = "org.apache.log4j.PatternLayout" >
< param name = "ConversionPattern" value = "[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />
</ layout >
<!--过滤器设置输出的级别 -->
< filter class = "org.apache.log4j.varia.LevelRangeFilter" >
< param name = "levelMin" value = "DEBUG" /> <!-- 最低级别 -->
< param name = "levelMax" value = "ERROR" /> <!-- 最高级别 -->
< param name = "AcceptOnMatch" value = "true" />
</ filter >
</ appender >
<!-- 原有文件基础追加日志 -->
< appender name = "runLog" class = "org.apache.log4j.RollingFileAppender" >
< param name = "File" value = "${catalina.base}/logs/log/server-log.html" /> <!-- 设置日志输出文件名 -->
< param name = "Append" value = "true" /> <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
< param name = "MaxBackupIndex" value = "10" />
< layout class = "org.apache.log4j.HTMLLayout" >
< param name = "ConversionPattern" value = "%p (%c:%L)- %m%n" />
</ layout >
</ appender >
<!-- 每天产生一个日志 -->
< appender name = "activexAppender" class = "com.ismartinfo.ilife.api.dic.MyDailyRollingFileAppender" >
< param name = "File" value = "${catalina.base}/logs/log/" />
< param name = "Append" value = "true" /> <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
< param name = "DatePattern" value = "'.'yyyy-MM-dd" />
< layout class = "org.apache.log4j.HTMLLayout" >
< param name = "ConversionPattern" value = "[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" />
</ layout >
</ appender >
<!-- 指定logger的设置,additivity指示是否遵循缺省的继承机制-->
< logger name = "com.runway.bssp.activeXdemo" additivity = "false" >
< priority value = "info" />
< appender-ref ref = "activexAppender" />
</ logger >
<!-- 根logger的设置-->
< root >
< priority value = "info" /> <!-- WEB容器启动处理最低级别处理 -->
< appender-ref ref = "config_Console" /> <!--引用控制台输出-->
< appender-ref ref = "activexAppender" /> <!--引用-->
</ root >
</ log4j:configuration >
初始配置 web.xml
<!-- log4j配置 -->
< context-param >
< param-name > log4jConfigLocation </ param-name >
< param-value > classpath:log4j.xml </ param-value >
</ context-param >
log4j建议只使用五个级别,级别顺序(由低到高): DEBUG < INFO < WARN < ERROR < FATAL
代码引用:
private static Logger logger = LogManager. getLogger(TimerDicM. class + "词典更新错误,时间" +StringUtils.getStrDate( new Date()));
try {int a=1/0;/*String content=getContent();//写入的文件内容FileWriter writer = null;String pathStr = this.getClass().getClassLoader().getResource("").getPath();// 对 Windows 下获取 物理路径 做 特殊处理if ("\\".equals(File.separator)) {pathStr = pathStr.substring(1).replaceAll("/", "\\\\");}File file = new File(pathStr + File.separatorChar + fileName);writer = new FileWriter(file.getPath(), true);writer.write(content);writer.close();*/} catch (Exception e) {logger .debug( "debug错误出现" );logger .error( "写入文件时产生了错误,错误信息:" +e.getMessage()); //error级别的信息,参数就是你输出的信息// TODO : handle exceptione.printStackTrace();}
年月生成文件夹,以年月日来命名文件
package com.ismartinfo.ilife.api.dic;
import java.io.File;
import java.util.Calendar;
import java.util.Date;
import org.apache.log4j.DailyRollingFileAppender;
import com.ismartinfo.ilife.api.util.StringUtils;
/**
* 集成 DailyRollingFileAppender 重写file 设置路径
* @author 张亮( witt)
* 人生苦短
*2015 - 7 - 10
*/
public class MyDailyRollingFileAppender extends DailyRollingFileAppender {
/**
* 自动创建文件夹
*/
@Override
public void setFile(String file) {
Calendar cal=Calendar. getInstance();
int year=cal.get(Calendar. YEAR ); //得到年
int month=cal.get(Calendar. MONTH )+1; //得到月,因为从0开始的,所以要加1
String filePath = file+year+ "/" +month+ "/" + " " ;
File fileCheck = new File(filePath);
if (!fileCheck.exists())
fileCheck.getParentFile().mkdirs();
String timePath=filePath+StringUtils. getStrDate( new Date())+ "_log.html" ;
super .setFile(timePath);
}
}
版权声明:本文为oQiDai123456原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。