Log4j2 - 没有记录在文件中

时间:2015-02-27 00:35:24

标签: java websphere log4j2

我在部署在Websphere 8.5.5上的webapp上使用log4j2。应用程序在其中一个websphere实例上记录日志文件,而在另一个实例上,日志文件中没有记录任何内容。日志文件在应用程序启动时创建,但仍为空。这是我的log4j2.xml

<Configuration name="productapp">
    <Properties>
        <Property name="filename">c:/logs/productapp.log</Property>
    </Properties>
    <Filter type="ThresholdFilter" level="trace" />

    <Appenders>     
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%m MDC%X%n"/>
        </Console>      
        <RollingRandomAccessFile name="RollingRandomAccessFile" fileName="${filename}" filePattern="c:/logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="250 MB"/>
            </Policies>
        </RollingRandomAccessFile>      
    </Appenders>

    <Loggers>
        <Logger name="au.com.test.productdata" level="debug" additivity="false">
            <AppenderRef ref="STDOUT" />            
        </Logger>

        <Logger name="au.com.test.productdata" level="debug"    additivity="false">
            <AppenderRef ref="RollingRandomAccessFile" />
        </Logger>

        <Logger name="org.glassfish.jersey" level="WARN"    additivity="false">
            <AppenderRef ref="RollingRandomAccessFile" />
        </Logger>

        <Root level="debug">
            <AppenderRef ref="RollingRandomAccessFile" />
        </Root>
    </Loggers>
</Configuration>

SystemOut日志中没有错误。可能出现什么问题?

2 个答案:

答案 0 :(得分:1)

试试fileName="${sys:filename}"

答案 1 :(得分:0)

可能不是你遇到的问题,但我最近遇到了相同的症状(创建了日志文件,但没有写入任何内容)。在我的情况下,所有内容都写入了stdout,我无法做任何改变。

我相信我的是由log4j2中的一个错误引起的,我在中在我的类路径中有一个log4j2.xml文件,而只是通过log4j.configurationFile外部文件定义它。在我的类路径中添加一个伪造的log4j2.xml为我解决了这个问题。但是,这可能对你不起作用,因为听起来你有两个相同的webapp实例,其中一个工作,一个没有,但我想我会在这里记录那些遇到同样问题的人

我还创建了一张票with log4j2,其中详细描述了我观察到的问题。