天天看點

openfire日志配置

本文記錄openfire開發過程中日志配置。

在開發openfire時有時需要将更多的日志資訊列印到控制台或者修改日志的輸出等級添加或減少日志的保留數。此時需要配置openfire的日志。

1、配置檔案

openfire的日志配置檔案存放在源碼的build/lib/dist目錄下,檔案名log4j.xml。

打開檔案可以看到預設情況下openfire會将日志輸出到4個不同級别的檔案中,檔案存儲路徑在openfire源碼下的target/openfire/logs目錄下且預設是輸出大于info級别的日志。

openfire日志配置

2、添加輸出控制台的配置

打開log4j.xml配置檔案,并在其中加入輸出日志到控制台的配置。如下:

<!-- add begin -->  
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">  
        <layout class="org.apache.log4j.PatternLayout">  
            <param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd HH:mm:ss}   %c{1}:%L - %m%n" />  
        </layout>  
    </appender>  
    <!-- add end -->            

然後修改root節點中的配置,加入輸出日志到上面的控制台配置中。本文還同時将日志級别調整為debug。

<root>
        <level value="debug" />
        <appender-ref ref="STDOUT" />
        <appender-ref ref="debug-out" />
        <appender-ref ref="info-out" />
        <appender-ref ref="warn-out" />
        <appender-ref ref="error-out" />
    </root>           

其餘的配置如拆分檔案、檔案命名等等可以自行查閱參考log4的配置。本文不過多贅述。

如下為本文完整的配置檔案内容:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<appender name="debug-out" class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="${openfireHome}/logs/debug.log" />
		<param name="MaxFileSize" value="1024KB"/>
		<param name="MaxBackupIndex" value="5"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyyy.MM.dd HH:mm:ss} %c - %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMax" value="debug" />
			<param name="AcceptOnMatch" value="true" />
		</filter>
	</appender>

	<appender name="info-out" class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="${openfireHome}/logs/info.log" />
		<param name="MaxFileSize" value="1024KB"/>
		<param name="MaxBackupIndex" value="5"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyyy.MM.dd HH:mm:ss} %c - %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMax" value="info" />
			<param name="LevelMin" value="info" />
			<param name="AcceptOnMatch" value="true" />
		</filter>
	</appender>

	<appender name="warn-out" class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="${openfireHome}/logs/warn.log" />
		<param name="MaxFileSize" value="1024KB"/>
		<param name="MaxBackupIndex" value="5"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyyy.MM.dd HH:mm:ss} %c - %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMax" value="warn" />
			<param name="LevelMin" value="warn" />
			<param name="AcceptOnMatch" value="true" />
		</filter>
	</appender>
	
	<appender name="error-out" class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="${openfireHome}/logs/error.log" />
		<param name="MaxFileSize" value="1024KB"/>
		<param name="MaxBackupIndex" value="5"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{yyyy.MM.dd HH:mm:ss} %c - %m%n" />
		</layout>
		<filter class="org.apache.log4j.varia.LevelRangeFilter">
			<param name="LevelMin" value="error" />
			<param name="AcceptOnMatch" value="true" />
		</filter>
	</appender>

	<!-- OF-506: Jetty INFO messages are generally not useful. Ignore them by default. -->
	<logger name="org.eclipse.jetty">
		<level value="warn" />
	</logger>
	
    <!-- add begin -->  
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">  
        <layout class="org.apache.log4j.PatternLayout">  
            <param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd HH:mm:ss}   %c{1}:%L - %m%n" />  
        </layout>  
    </appender>  
    <!-- add end --> 	
	
   	<root>
		<level value="debug" />
		<appender-ref ref="STDOUT" />
		<appender-ref ref="debug-out" />
		<appender-ref ref="info-out" />
		<appender-ref ref="warn-out" />
		<appender-ref ref="error-out" />
	</root>
	
</log4j:configuration>
           

3、輸出日志

在java代碼中使用如下代碼擷取一個日志對象,然後調用對應的日志方法即可。

private static final Logger Log = LoggerFactory.getLogger(test.class);
Log.debug("hello,world");

           

繼續閱讀