Log4j生成具有相同内容的不同文件

时间:2017-04-26 06:51:54

标签: file logging configuration log4j appender

我正在使用集成了log4j的Java应用程序。对于一个新的开发,我需要它而不是生成一个文件,我将生成两个,每个国家,从应用程序Web访问。两者都具有在我的应用程序中找到的相同日志记录。

我使用.xml文件配置了配置:

<!-- Appenders -->
    	<appender name="console" class="org.apache.log4j.ConsoleAppender">
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern"
    				value="jeveris: %d{dd MMM yyyy HH:mm:ss,SSS} %-5p %c - %m%n" />
    		</layout>
    	</appender>

    	
    	<appender name="One-Console" class="org.apache.log4j.RollingFileAppender">
    		<param name="File" value="Console.log" />
    		<param name="Append" value="true" />
    		<param name="MaxFileSize" value="2MB" />
    		<layout class="org.apache.log4j.PatternLayout">
    			<param name="ConversionPattern"
    				value="%d{dd MMM yyyy HH:mm:ss,SSS} %-5p %c - %m%n" />
    		</layout>
    	</appender>


    	
    	<category name="com.example.one.web">
    		<level value="debug" />
    		<appender-ref ref="One-Console" />
    	</category>
    	
    	
    	<root>
    	       <appender-ref ref="console" />
    		<level value="debug" />
    	</root>
    </log4j:configuration>

有人可以指导我,告诉我是否有可能或帮我找到解决方案?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果你想要2个以上的日志文件打印相同的内容,那么你可以在你的标签中精选2个不同的文件,如下所示:

<configuration status="OFF">
<Properties>
    <Property name="log-path">/your/file/path/</Property>
    <Property name="log-country-name1">Country1</Property>
    <Property name="log-country-name2">Country2</Property>
    <!-- more if necessary -->
    <Property name="log-pattern">%d{ISO8601} %-5p [%t|%c{1}] %m\n</Property>
    <Property name="rollover-strategy-max">5</Property>
    <Property name="rolling-size-based">10 MB</Property>
</Properties>
<appenders>

    <!--uncomment following if want to print to console as well -->
    <!-- <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout>
            <pattern>${log-pattern}</pattern>
        </PatternLayout>
    </Console> -->

 <RollingFile name="INFO" fileName="${log-path}/${log-country-name1}-logger.log" filePattern="${log-path}/${log-project-name}-debug-%d-%i.log.zip">
    <PatternLayout>
        <pattern>${log-pattern}</pattern>
    </PatternLayout>
    <Policies>
        <SizeBasedTriggeringPolicy size="${rolling-size-based}" />
    </Policies>
    <DefaultRolloverStrategy max="${rollover-strategy-max}" />
</RollingFile>

 <RollingFile name="INFO" fileName="${log-path}/UpdaterLocal-logger.log" filePattern="${log-path}/${log-country-name2}-debug-%d-%i.log.zip">
    <PatternLayout>
        <pattern>${log-pattern}</pattern>
    </PatternLayout>
    <Policies>
        <SizeBasedTriggeringPolicy size="${rolling-size-based}" />
    </Policies>
    <DefaultRolloverStrategy max="${rollover-strategy-max}" />
</RollingFile>

</appenders>
<Loggers>
    <logger name="io.switchfour" level="trace" additivity="false">
        <AppenderRef ref="INFO" level="info" />
    </logger>
</Loggers>

以上将创建/your/file/path/Country1-logger.log和/your/file/path/Country2-logger.log,并将所有INFO或更高的条目写入两个文件。您的日志文件应该完全相同。