log4j.xml 日志只输出指定类配置

1、日志增加appender 指定日志生成时间、格式、间隔时间。

2、category指定哪些或哪个类日志生成在文件中。

3、自定义logger避免不要将userBehavior定义到root中避免继承导致其他日志写到userBehavior中。

配置样例如下:

<!--增加 开始-->
    <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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CodingBlock

Android查缺补漏(IPC篇)-- 进程间通讯基础知识热身

本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8479282.html

963
来自专栏Golang语言社区

Golang构建HTTP服务(一)--- net/http库源码笔记

实现一个最简单HTTP server需要多少代码?只需要一行,Python2的python -m SimpleHTTPServer,ruby的ruby -run...

4485
来自专栏CodingBlock

Android查缺补漏(IPC篇)-- 进程间通讯基础知识热身

本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8479282.html 在Android...

2796
来自专栏Java Edge

Servlet 体系结构

3198
来自专栏子勰随笔

Instrumentation框架介绍-Android自动化测试系列(三)

1778
来自专栏老马寒门IT

Node入门教程(8)第六章:path 模块详解

path 模块详解 path 模块提供了一些工具函数,用于处理文件与目录的路径。由于windows和其他系统之间路径不统一,path模块还专门做了相关处理,屏蔽...

2748
来自专栏CodingBlock

Android查缺补漏(IPC篇)-- 进程间通讯基础知识热身

本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8479282.html

542
来自专栏大内老A

通过自定义ServiceHost实现对WCF的扩展[实例篇]

在《原理篇》中我们谈到了通过自定义ServiceHost对WCF进行扩展的本质,以及在IIS/WAS寄宿情况下ServiceHostFactory的作用。接下来...

1907
来自专栏大内老A

.NET Core的文件系统[2]:FileProvider是个什么东西?

在《读取并监控文件的变化》中,我们通过三个简单的实例演示从编程的角度对文件系统做了初步的体验,接下来我们继续从设计的角度来继续认识它。这个抽象的文件系统以目录的...

1958
来自专栏向治洪

Android性能优化之TraceView和Lint使用详解

Android lint工具是Android studio中集成的一个代码提示工具,它主要负责对你的代码进行优化提示,包括xml和java文件,很强大。编写完代...

2186

扫码关注云+社区