下载必备的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);
}
}