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怎么为指定的类配置输出日志的主要内容,如果未能解决你的问题,请参考以下文章

log4j.properties配置说明

log4j.properties配置说明

log4j日志输出格式一览

log4j配置输出到多个日志文件

Log4j 配置某个类中某个方法的输出日志到指定文件

log4j配置输出到多个日志文件(转)