2017-04-01 115 views
1

我在基于Linux的系统中,我使用SLF4J库记录log4j的不写入文件,但其写入到控制台

进口org.slf4j.Logger aritinga小的应用程序; import org.slf4j.LoggerFactory;

我可以看到日志在控制台中可见但不会附加到日志文件。

<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> 
    <param name="threshold" value="INFO" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="[%d{ABSOLUTE}][%-5p][%-10t]%m%n" /> 
    </layout> 
</appender> 






<!-- EXAMPLE logging setup NOTES: 1. files are written to "./logs/<filename>". 
    You must setup the environment so that ./logs is a symlink to the correct 
    location according to the EXAMPLE log standard. For example, "/opt/logs/". 
    If that's not possible, change the File setting in each appender appropriately. --> 

<appender name="EXAMPLE_AUDIT" class="org.apache.log4j.RollingFileAppender"> 
    <param name="threshold" value="INFO" /> 
    <param name="File" value="./logs/audit.log" /> 
    <param name="MaxFileSize" value="128MB" /> 
    <param name="MaxBackupIndex" value="20" /> 
    <layout class="com.rsg.ova.logging.log4j.EXAMPLELayout"> 
     <param name="ConversionPattern" value="EXAMPLE_AUDIT" /> 
    </layout> 
</appender> 

<appender name="EXAMPLE_METRIC" class="org.apache.log4j.RollingFileAppender"> 
    <param name="threshold" value="DEBUG" /> 
    <param name="File" value="./logs/metric.log" /> 
    <param name="MaxFileSize" value="128MB" /> 
    <param name="MaxBackupIndex" value="10" /> 
    <layout class="com.rsg.ova.logging.log4j.EXAMPLELayout"> 
     <param name="ConversionPattern" value="EXAMPLE_METRIC" /> 
    </layout> 
</appender> 

<appender name="EXAMPLE_ERROR" class="org.apache.log4j.RollingFileAppender"> 
    <param name="threshold" value="ERROR" /> <!-- only WARN and ERROR are allowed in this log --> 
    <param name="File" value="./logs/error.log" /> 
    <param name="MaxFileSize" value="128MB" /> 
    <param name="MaxBackupIndex" value="10" /> 
    <layout class="com.rsg.ova.logging.log4j.EXAMPLELayout"> 
     <param name="ConversionPattern" value="EXAMPLE_ERROR" /> 
    </layout> 
</appender> 

<appender name="EXAMPLE_DEBUG" class="org.apache.log4j.RollingFileAppender"> 
    <param name="threshold" value="DEBUG" /> 
    <param name="File" value="./logs/debug.log" /> 
    <param name="MaxFileSize" value="128MB" /> 
    <param name="MaxBackupIndex" value="20" /> 
    <layout class="com.rsg.ova.logging.log4j.EXAMPLELayout"> 
     <param name="ConversionPattern" value="EXAMPLE_DEBUG" /> 
    </layout> 
</appender> 


<logger name="com.rsg.EXAMPLE.audit" additivity="false"> 
    <level value="info" /> 
    <appender-ref ref="EXAMPLE_AUDIT" /> 
</logger> 

<logger name="com.rsg.EXAMPLE.metrics" additivity="false"> 
    <level value="info" /> 
    <appender-ref ref="EXAMPLE_METRIC" /> 
</logger> 

<logger name="com.rsg.EXAMPLE.error" additivity="false"> 
    <level value="info" /> 
    <appender-ref ref="EXAMPLE_ERROR" /> 
</logger> 

<logger name="com.rsg.EXAMPLE.debug" additivity="false"> 
    <level value="info" /> 
    <appender-ref ref="CONSOLE" /> 
    <appender-ref ref="EXAMPLE_DEBUG" /> 
</logger> 


<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="EXAMPLE_DEBUG" /> 
    <appender-ref ref="CONSOLE" /> 

</root> 

<logger name="org.openEXAMPLE.agcp.commonFunction.input" 
    additivity="false"> 
    <level value="INFO" /> 
    <appender-ref ref="CONSOLE" /> 
</logger> 

<logger name="org.openEXAMPLE.agcp.commonFunction.output" 
    additivity="false"> 
    <level value="INFO" /> 
    <appender-ref ref="CONSOLE" /> 

</logger> 

<logger name="org.openEXAMPLE.agcp.commonFunction.error" 
    additivity="false"> 
    <level value="DEBUG" /> 
    <appender-ref ref="CONSOLE" /> 
    <appender-ref ref="EXAMPLE_ERROR" /> 
</logger> 

<!-- The EXAMPLE logging standard has four specific classes of logging that 
    are unrelated to subsystem logger names. If you want them activated, uncomment 
    this block. --> 
<logger name="com.rsg.EXAMPLE.audit" additivity="false"> 
    <level value="info" /> 
    <appender-ref ref="CONSOLE" /> 
    <appender-ref ref="EXAMPLE_AUDIT" /> 
</logger> 

<logger name="com.rsg.EXAMPLE.metrics" additivity="false"> 
    <level value="info" /> 
    <appender-ref ref="EXAMPLE_METRIC" /> 
</logger> 

<logger name="com.rsg.EXAMPLE.error" additivity="false"> 
    <level value="info" /> 
    <appender-ref ref="EXAMPLE_ERROR" /> 
</logger> 

<logger name="com.rsg.EXAMPLE.debug" additivity="false"> 
    <level value="info" /> 
    <appender-ref ref="EXAMPLE_DEBUG" /> 
</logger> 


<logger name="com.rsg.ova.apiClient.http.HttpClient" additivity="false"> 
    <level value="info" /> 
    <appender-ref ref="EXAMPLE_ERROR" /> 
    <appender-ref ref="CONSOLE" /> 
</logger> 

<logger name="com.rsg.ova.roman.client.impl.romanSimplerBatchPublisher" 
    additivity="false"> 
    <level value="info" /> 
    <appender-ref ref="EXAMPLE_ERROR" /> 
    <appender-ref ref="CONSOLE" /> 
</logger> 

回答

0

它已被确定,我必须包括sl4j-log4j桥jar来解决上述问题,我包括log4j和sl4j个人罐子,由于这个我可以看到没有编译错误,但桥没有履行。

删除单个罐子并添加桥接罐问题已解决。

0

我已检查logback.xml文件配置。看起来根标签(“配置”)缺失。你可以添加并检查它?

参考https://logback.qos.ch/manual/configuration.html

+0

已经试过但没有运气 – Kiran

+0

再试一次,使用log4j.properties而不是log4j.xml。如果需要,我可以为您提供属性文件。 –

+0

我们必须根据项目要求使用log4j2.xml – Kiran

0

看来你错过了根标签在XML文件中。请找到下面的代码将日志写入文件。

<appender name="file" class="org.apache.log4j.RollingFileAppender"> 
    <param name="append" value="false" /> 
    <param name="maxFileSize" value="128MB" /> 
    <param name="maxBackupIndex" value="20" /> 
    <param name="file" value="./logs/audit.log" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" /> 
    </layout> 
</appender> 

<root> 
    <level value="INFO" /> 
    <appender-ref ref="file" /> 
</root> 
+0

添加根标记如象下面,但没有运气
<电平值= “DEBUG”/> <附加器-REF REF = “EXAMPLE_DEBUG”/> <附加器-REF REF = “EXAMPLE_METRIC”/ > <附加器-REF REF = “EXAMPLE_AUDIT”/> <附加器-REF REF = “EXAMPLE_ERROR”/> <附加器-REF REF = “FILE”/> Kiran

0

问题中显示的配置为log4j 1.2格式。

log4j2.xml的格式不同。它是基于插件的,所以你不需要再指定appender的类名。

请参阅Log4j2 manual。它有很多示例配置。