首页
诗词
字典
板报
句子
名言
友答
励志
学校
网站地图
CSS
Dreamweaver
Fireworks
Flash
ASP
asp.net
PHP
JSP
SEO优化
源码建站
CSS
Web开发
Web前端
JavaScript
vbScript
Ajax
网页设计
跨浏览器开发
高性能WEB开发
Web Service
XML SOAP
当前位置:
首页
>
教程频道
>
网站开发
>
CSS
>
HTMLLayout 种重写…输出HTML的Title问中文…可扩展…
2012-07-24
HTMLLayout 类重写……输出HTML的Title问中文……可扩展……package?com.***.ztb.util ??import?java.text.Simp
HTMLLayout 类重写……输出HTML的Title问中文……可扩展……
package?com.***.ztb.util; ??
import?java.text.SimpleDateFormat; ??
??
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; ??
??
??
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="??2???"; ??
??
????/**??
?????*?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("<font?color="green">"); ??
????????????sbuf.append(Transform.escapeTags(String.valueOf(event.getLevel()))); ??
????????????sbuf.append("</font>"); ??
????????} ??
????????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="?o?">");??
????????????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> ???/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); ??
????????sbuf.append("<html>"?+?Layout.LINE_SEP); ??
????????sbuf.append("<head>"?+?Layout.LINE_SEP); ??
????//??sbuf.append("<meta?http-equiv="content-type"?content="text/html;?charset=UTF-8">");???
????????sbuf.append("<title>"?+?title?+?"</title>"?+?Layout.LINE_SEP); ??
????????sbuf.append("<style?type="text/css">"?+?Layout.LINE_SEP); ??
????????sbuf.append("<!--"?+?Layout.LINE_SEP); ??
????????sbuf.append("body,?table?{font-family:?'??',arial,sans-serif;?font-size:?12px;}"?+?Layout.LINE_SEP); ??
????????sbuf.append("th?{background:?#336699;?color:?#FFFFFF;?text-align:?left;}"?+?Layout.LINE_SEP); ??
????????sbuf.append("-->"?+?Layout.LINE_SEP); ??
????????sbuf.append("</style>"?+?Layout.LINE_SEP); ??
????????sbuf.append("</head>"?+?Layout.LINE_SEP); ??
????????sbuf.append("<body?bgcolor="#FFFFFF"?topmargin="6"?leftmargin="6">"?+?Layout.LINE_SEP); ??
????//??sbuf.append("<hr?size="1"?noshade>"?+?Layout.LINE_SEP);???
????//??sbuf.append("Log?session?start?time?"?+?new?SimpleDateFormat("yyyy-MM-dd?hh:mm:ss").format(new?java.util.Date())?+?"<br>"?+?Layout.LINE_SEP);???
????//??sbuf.append("<p>"?+?Layout.LINE_SEP);???
????????sbuf.append("<table?cellspacing="0"?cellpadding="4"?border="1"?bordercolor="#224466"?width="100%">"?+?Layout.LINE_SEP); ??
????????sbuf.append("<tr>"?+?Layout.LINE_SEP); ??
????//??sbuf.append("<th>??</th>"?+?Layout.LINE_SEP);???
????????sbuf.append("<th>?????th>"?+?Layout.LINE_SEP); ??
????????sbuf.append("<th>??±?h>"?+?Layout.LINE_SEP); ??
????//??sbuf.append("<th>??`</th>"?+?Layout.LINE_SEP);???
????????if?(locationInfo)?{ ??
????????????sbuf.append("<th>???</th>"?+?Layout.LINE_SEP); ??
????????} ??
//??????sbuf.append("<th>2??/th>");???
????????sbuf.append("<th>х?</th>"?+?Layout.LINE_SEP); ??
????????sbuf.append("</tr>"?+?Layout.LINE_SEP); ??
????????sbuf.append("<br></br>"?+?Layout.LINE_SEP); ??
????????return?sbuf.toString(); ??
????} ??
??
} ?
配置文件:
log4j.rootLogger=DEBUG,A1,R
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=sys_ztb_log.html
log4j.appender.R.MaxFileSize=4000KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=com.dcsoft.ztb.util.FormatHTMLLayout
#log4j.appender.R.layout=org.apache.log4j.HTMLLayout
#log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n
运行效果如下:
?
OK,到这里就拉倒吧……希望大家能看懂,我只是简单的写了些,里面还有很多东西可以扩展的,你们看着源码扩展就行了,下班了……哈哈。回家。
老婆在家里做好了饭等我呢。哈哈,炒萝卜丝……
查看更多
下一篇
本文网址:
https://www.reader8.com/jiaocheng/20120724/1277880.html
读书人精选
热点排行
html块级元素跟内联元素区别详解(转)
关于event.srcElement的一些有关问题
html文件的doctype从Transitional改为St
css怎么清除浮动
Jquery的each循环跟原生循环及html5fore
asp.net主页自适应分辨率浏览器
CSS 式样规则选择器
IE6弹出窗口中移动窗口滚动条时里面的下
拼接html语句的有关问题
在ie 7或ie 6里怎么让超出td宽度的内容浮