现在的位置: 首页 > 综合 > 正文

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

2018年05月24日 ⁄ 综合 ⁄ 共 1397字 ⁄ 字号 评论关闭

    根据日志定位问题的时候,如果所有的日志都打到一个日志文件里,查问题就很不直观了。

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

    配置如下:

	<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里了。

抱歉!评论已关闭.