log4j怎么为指定的类配置输出日志
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4j怎么为指定的类配置输出日志相关的知识,希望对你有一定的参考价值。
<!--增加 开始--><appender name="userBehavior" class="com.xx.app.server.userbehavior.log.MinuteRollingAppender">
<param name="file" value="/export/Logs/userbehavior/userBehavior.log" />
<param name="Append" value="true" />
<param name="intervalTime" value="1"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m\n" />
</layout>
</appender>
<category name="com.xx.app.server.userbehavior.UserBehaviorUtil" additivity="false">
<priority value="ERROR"/>
<appender-ref ref="userBehavior"/>
</category>
<logger name="userBehavior">
<level value="ERROR" />
<appender-ref ref="userBehavior" />
</logger>
<!--增加结束-->
不要在root中引用userBehavior会因日志继承导致日志混乱
<root>
<level value="$serverside.log.level"/>
<appender-ref ref="Fs_Client"/>
</root>
使用样例
public class UserBehaviorUtil
/**
* 记录日志.
*/
private static Logger logger = Logger.getLogger("userBehavior");
/**
* 写日志.
* @param fun 方法名称
* @param map
*/
public static void write(String fun,Map<String,Object> map)
String key = getKey(fun, map);
String value = getValue(map);
logger.error(key+ Constants.JDQ_MESSAGE_SPLIT+value);
参考链接:
http://willow-na.iteye.com/blog/347340
http://www.360doc.com/content/10/1114/14/573136_69267215.shtml 参考技术A 秦水底只锰奋发向上觅 参考技术B 楼主可以看看参考。。。
log4j.properties配置说明
-X号: X信息输出时左对齐;
%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%r: 输出自应用启动到输出该log信息耗费的毫秒数
%c: 输出日志信息所属的类目,通常就是所在类的全名
%t: 输出产生该日志事件的线程名
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%%: 输出一个"%"字符
%F: 输出日志消息产生时所在的文件名称
%L: 输出代码中的行号
%m: 输出代码中指定的消息,产生的日志具体信息
%n: 输出一个回车换行符,Windows平台为" ",Unix平台为" "输出日志信息换行
可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。例如:
%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。
%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边较远输出的字符截掉。
以上是关于log4j怎么为指定的类配置输出日志的主要内容,如果未能解决你的问题,请参考以下文章