您的位置:首页 > 其它

log4j指定包或类打到单独的日志文件的配置

2015-01-15 17:53 465 查看
根据日志定位问题的时候,如果所有的日志都打到一个日志文件里,查问题就很不直观了。

指定某个路径的包或类打到单独的日志文件

配置如下:

<appender name="poll" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="encoding" value="UTF-8" />
		<param name="File" value="/export/Logs/im.**.com/poll.log" />
		<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %t %5p [%c:%L] - %m%n" />
		</layout>
	</appender>

        <category name="com.**.im.tracker.web.servlet.DomainListServlet" additivity="false">
		<level value="ERROR" />
		<appender-ref ref="poll" />
		<appender-ref ref="CONSOLE" />
	</category>


appender定义了一个日志文件输出源。category的name字段指定了要单独大日志的包或类的路径,子字段的appender-ref则定义了这个包用哪几个日志文件输出源。

指定某个特殊功能的日志打到独立的日志文件

有时候,一个类很大,日志也很多,但是这个类里的某行或某几行日志特别重要,需要单独打到一个日志文件里观察。这个时候需要用另外一种配置。
首先需要在java代码里单独配置一个logger

private static final Logger LINKLOGGER = LoggerFactory.getLogger("LinkLogger");

然后打日志的之后用这个logger打日志。
对应的log4j配置文件配置如下:

<appender name="link" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="/export/Logs/im.**.com/link.log" />
        <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
        <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %t %5p [%c:%L] - %m%n" />
        </layout>
    </appender>
 

    <logger name="LinkLogger" additivity="false">
        <level value="info" />
        <appender-ref ref="link" />
    </logger>


这样配置好后,用LINKLOGGER打的日志就会打到link.log里了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: