没有合适的资源?快使用搜索试试~ 我知道了~
首页log4j详解-信息输出到文件或控制台
资源详情
资源评论
资源推荐
log4j 输出到文件和数据库
控制台的实现就不说了,这里提供两种实例的配置,一种是输出为文件的(每天输出一个
文件),一种为 输出到数据库的配置。
1、输出到文件:
Properties 代码
log4j.rootCategory=WARN, CONSOLE, FILE
log4j.logger.com.surfilter.bt=FATAL,TOFILE
log4j.appender.TOFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.TOFILE.Threshold=FATAL
log4j.appender.TOFILE.File=E:/javascpace/bt/logs/union.html
log4j.appender.TOFILE.Append=true
log4j.appender.TOFILE.ImmediateFlush=true
log4j.appender.TOFILE.DatePattern='.'yyyy-MM-dd'.html'
log4j.appender.TOFILE.layout=com.surfilter.bt.util.FormatHTMLLayout
log4j.rootCategory=WARN, CONSOLE, FILE
log4j.logger.com.surfilter.bt=FATAL,TOFILE
log4j.appender.TOFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.TOFILE.Threshold=FATAL
log4j.appender.TOFILE.File=E:/javascpace/bt/logs/union.html
log4j.appender.TOFILE.Append=true
log4j.appender.TOFILE.ImmediateFlush=true
log4j.appender.TOFILE.DatePattern='.'yyyy-MM-dd'.html'
log4j.appender.TOFILE.layout=com.surfilter.bt.util.FormatHTMLLayout
这里的 com.surfilter.bt.util.FormatHTMLLayout 是重写了 log4j 提供的 HTMLLayout 类,具体
代码如下:
Java 代码
import java.text.SimpleDateFormat;
import java.util.Map;
import org.apache.log4j.HTMLLayout;
import org.apache.log4j.Layout;
import org.apache.log4j.Level;
import org.apache.log4j.helpers.Transform;
import org.apache.log4j.spi.LocationInfo;
import org.apache.log4j.spi.LoggingEvent;
import com.opensymphony.xwork2.ActionContext;
import com.surfilter.core.Constants;
import com.surfilter.security.domain.User;
public class FormatHTMLLayout extends HTMLLayout {
public FormatHTMLLayout() {
}
protected final int BUF_SIZE = 256;
protected final int MAX_CAPACITY = 1024;
static String TRACE_PREFIX = "<br> ";
// output buffer appended to when format() is invoked
private StringBuffer sbuf = new StringBuffer(BUF_SIZE);
String title="系统操作日志";
/**
* A string constant used in naming the option for setting the the HTML
* document title. Current value of this string constant is <b>Title</b>.
*/
public static final String TITLE_OPTION = "Title";
// Print no location info by default
boolean locationInfo = true;
public String format(LoggingEvent event) {
if (sbuf.capacity() > MAX_CAPACITY) {
sbuf = new StringBuffer(BUF_SIZE);
} else {
sbuf.setLength(0);
}
sbuf.append(Layout.LINE_SEP + "<tr>" + Layout.LINE_SEP);
/* sbuf.append("<td>");
sbuf.append(String.valueOf(i));
sbuf.append("</td>" + Layout.LINE_SEP);
*/
sbuf.append("<td>");
sbuf.append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new
java.util.Date()));
sbuf.append("</td>" + Layout.LINE_SEP);
/* String escapedThread = Transform.escapeTags(event.getThreadName());
sbuf.append("<td title=\"" + escapedThread + " thread\">");
sbuf.append(escapedThread);
sbuf.append("</td>" + Layout.LINE_SEP);
*/
sbuf.append("<td title=\"级别\">");
if (event.getLevel().equals(Level.FATAL)) {
sbuf.append("<font color=\"#339933\">");
sbuf.append(Transform.escapeTags(String.valueOf(event.getLevel())));
sbuf.append("</font>");
} else if (event.getLevel().isGreaterOrEqual(Level.WARN)) {
sbuf.append("<font color=\"#993300\"><strong>");
sbuf.append(Transform.escapeTags(String.valueOf(event.getLevel())));
sbuf.append("</strong></font>");
} else {
sbuf.append(Transform.escapeTags(String.valueOf(event.getLevel())));
}
sbuf.append("</td>" + Layout.LINE_SEP);
/* String escapedLogger =
Transform.escapeTags(event.getLoggerName().substring(event.getLoggerName().lastIndexOf(".")
));
sbuf.append("<td title=\"类名\">");
sbuf.append(escapedLogger);
sbuf.append("</td>" + Layout.LINE_SEP);
*/
if (locationInfo) {
LocationInfo locInfo = event.getLocationInformation();
sbuf.append("<td title=\"行号\">");
sbuf.append(Transform.escapeTags(locInfo.getFileName()));
sbuf.append(':');
sbuf.append(locInfo.getLineNumber());
sbuf.append("</td>" + Layout.LINE_SEP);
}
Map session = ActionContext.getContext().getSession();
if(session!=null){
User user = (User) session.get(Constants.USER_IN_SESSION);
sbuf.append("<td>"+user.getName()+"</td>");
}else{
sbuf.append("<td> </td>");
}
sbuf.append("<td title=\"日志信息\">");
sbuf.append(Transform.escapeTags(event.getRenderedMessage()));
sbuf.append("</td>" + Layout.LINE_SEP);
sbuf.append("</tr>" + Layout.LINE_SEP);
if (event.getNDC() != null) {
sbuf.append("<tr><td bgcolor=\"#EEEEEE\" style=\"font-size : xx-small;\" colspan=\"6\"
title=\"Nested Diagnostic Context\">");
sbuf.append("NDC: " + Transform.escapeTags(event.getNDC()));
sbuf.append("</td></tr>" + Layout.LINE_SEP);
}
String[] s = event.getThrowableStrRep();
if (s != null) {
sbuf.append("<tr><td bgcolor=\"#993300\" style=\"color:White; font-size : xx-small;\"
colspan=\"4\">");
appendThrowableAsHTML(s, sbuf);
sbuf.append("</td></tr>" + Layout.LINE_SEP);
}
return sbuf.toString();
}
private void appendThrowableAsHTML(String[] s, StringBuffer sbuf) {
if (s != null) {
int len = s.length;
if (len == 0)
return;
sbuf.append(Transform.escapeTags(s[0]));
sbuf.append(Layout.LINE_SEP);
for (int i = 1; i < len; i++) {
sbuf.append(TRACE_PREFIX);
sbuf.append(Transform.escapeTags(s[i]));
sbuf.append(Layout.LINE_SEP);
}
}
}
/**
* Returns appropriate HTML headers.
*/
public String getHeader() {
StringBuffer sbuf = new StringBuffer();
sbuf.append("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01
Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">" + Layout.LINE_SEP);
剩余19页未读,继续阅读
LeeJah163
- 粉丝: 15
- 资源: 55
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 数据结构1800题含完整答案详解.doc
- 医疗企业薪酬系统设计与管理方案.pptx
- 界面与表面技术界面理论与表面技术要点PPT学习教案.pptx
- Java集合排序及java集合类详解(Collection、List、Map、Set)讲解.pdf
- 网页浏览器的开发 (2).pdf
- 路由器原理与设计讲稿6-交换网络.pptx
- 火电厂锅炉过热汽温控制系统设计.doc
- 企业识别CIS系统手册[收集].pdf
- 物业管理基础知识.pptx
- 第4章财务预测.pptx
- 《集成电路工艺设计及器件特性分析》——实验教学计算机仿真系.pptx
- 局域网内共享文件提示没有访问权限的问题借鉴.pdf
- 第5章网络营销策略.pptx
- 固井质量测井原理PPT教案.pptx
- 毕业实习总结6篇.doc
- UGNX建模基础篇草图模块PPT学习教案.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论6