[ 
https://issues.apache.org/jira/browse/LOG4J2-2816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17082433#comment-17082433
 ] 

Denis Orlov commented on LOG4J2-2816:
-------------------------------------

Our slightly obfuscated log4j2.xml
{code}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration packages="algos.util.log4j">

    <Appenders>
        <Console name="stdout">
            <PatternLayout pattern="%date %-5level [%-20thread] %logger{0} - 
%msg{nolookups}%xException%n"/>
        </Console>
        <!-- 'logs.root' sys env defined for Colo SOR -->
        <RollingRandomAccessFile name="file"
                                 filename="${sys:logs.root:-logs}/fx-engine.log"
                                 
filePattern="${sys:logs.root:-logs}/fx-engine.log.%d{yyyy-MM-dd_HH}.%i"
                                 bufferSize="8192"
                                 immediateFlush="false">
            <PatternLayout>
                <Pattern>%date %-5level [%-20thread] %logger{0} - 
%msg{nolookups}%xException%n</Pattern>
            </PatternLayout>
            <Policies>
                <OnStartupTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="50 MB"/>
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!--
                    just in case, we need to bear in mind new rollover deletion 
logic inside - 
http://logging.apache.org/log4j/2.x/manual/appenders.html#DefaultRolloverStrategy
                    By default, the max counter is seven, after files will be 
overwritten.
            -->

            <DefaultRolloverStrategy max="65536"/>
        </RollingRandomAccessFile>

        <!-- 'logs.root' sys env defined for Colo SOR -->
        <RollingRandomAccessFile name="errorFile"
                                 
filename="${sys:logs.root:-logs}/errors-fx-engine.log"
                                 
filePattern="${sys:logs.root:-logs}/errors-fx-engine.log.%d{yyyy-MM-dd_HH}.%i"
                                 immediateFlush="true">
            <Filters>
                <ThresholdFilter level="WARN"/>
            </Filters>
            <PatternLayout>
                <Pattern>%date %-5level [%-20thread] %logger{0} - 
%msg{nolookups}%xException%n</Pattern>
            </PatternLayout>
            <Policies>
                <OnStartupTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="50 MB"/>
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <DefaultRolloverStrategy max="65536"/>
        </RollingRandomAccessFile>

        <!-- 'logs.root' sys env defined for Colo SOR -->
        <RollingRandomAccessFile name="metricsFile"
                                 
filename="${sys:logs.root:-logs}/metrics/metrics.log"
                                 
filePattern="${sys:logs.root:-logs}/metrics/metrics.log.%d{yyyy-MM-dd_HH}.%i"
                                 immediateFlush="false">
            <PatternLayout>
                <Pattern>%date %-5level %logger{0} - 
%msg{nolookups}%xException%n</Pattern>
            </PatternLayout>
            <Policies>
                <OnStartupTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="50 MB"/>
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <DefaultRolloverStrategy max="65536"/>
        </RollingRandomAccessFile>

        <!-- 'logs.root' sys env defined for Colo SOR -->
        <RollingRandomAccessFile name="fwdPointsFile"
                                 
filename="${sys:logs.root:-logs}/fwd-points.log"
                                 
filePattern="${sys:logs.root:-logs}/fwd-points.log.%d{yyyy-MM-dd_HH}.%i"
                                 immediateFlush="false">
            <PatternLayout>
                <Pattern>%date %-5level %logger{0} - 
%msg{nolookups}%xException%n</Pattern>
            </PatternLayout>
            <Policies>
                <OnStartupTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="50 MB"/>
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <DefaultRolloverStrategy max="65536"/>
        </RollingRandomAccessFile>
    </Appenders>

    <Loggers>
        <Logger name="org.springframework" level="INFO"/>

        <Logger name="fxoptions.common" level="INFO"/>
        <Logger name="statsserver" level="INFO"/>

        <Logger name="fx.upstream" level="DEBUG"/>

        <Logger name="fx.marketdata" level="DEBUG"/>
        <Logger name="fx.marketdata.komodo" level="INFO"/>
        <Logger name="fx.marketdata.filtering" level="INFO"/>
        <Logger name="marketdata.filtering" level="INFO"/>
        <Logger name="komodo.arbitrator" level="INFO"/>

        <Logger name="services.ordermgmt" level="DEBUG"/>
        <Logger name="services.referencedata" level="INFO"/>
        <Logger name="services.streamconnectors " level="DEBUG"/>
        <Logger name="services.streamconnectors" level="DEBUG"/>
        <Logger name="komodo.switcher" level="INFO"/>

        <Logger name="sor" level="DEBUG"/>
        <Logger name="sor.breakdown.QuantityRounding" level="INFO"/>
        <Logger name="sor.phases.IcebergProcessor" level="INFO"/>
        <Logger name="sor.phases.PhaseHelper" level="INFO"/>
        <Logger name="sor.phases.smartstop" level="DEBUG"/>
        <Logger name="sor.Tickets" level="INFO"/>
        <Logger name="state.CrossUpstreamTicket" level="INFO"/>

        <Logger name="execution.OpenMarketsSupplier" level="INFO"/>

        <Logger name="circuitbreakers.ParentExecutionOvertradeCircuitBreaker" 
level="DEBUG"/>

        <Logger name="fx.crosses" level="INFO"/>
        <Logger name="fx.crosses.referencedata" level="DEBUG"/>
        <Logger name="fx.crosses.marketdata.CrossBook" level="INFO"/>
        <Logger name="fx.crosses.marketdata.CrossBookFactory" level="INFO"/>
        <Logger name="fx.marketdata.scheduled.cross.CrossMdAdapter" 
level="INFO"/>

        <Logger name="venues" level="DEBUG"/>

        <Logger name="fx.execution.spot_equivalents" level="INFO" 
additivity="true">
            <AppenderRef ref="fwdPointsFile"/>
        </Logger>
        <Logger 
name="fx.execution.spot_equivalents.fp.BaseForwardPointsProvider.fwdPoints" 
level="ALL" additivity="false">
            <AppenderRef ref="fwdPointsFile"/>
        </Logger>

        <Logger name="fx.execution.MigAlgoFlaggingService" level="INFO"/>
        <Logger name="fx.execution" level="TRACE"/>

        <Logger name="fx.fixing" level="DEBUG"/>

        <Logger name="komodo" level="INFO"/>
        <Logger name="komodo.transport.tnw.lbm.LBMContextWrapper" 
level="DEBUG"/>

        <Logger name="metrics" level="ALL" additivity="false">
            <AppenderRef ref="metricsFile"/>
        </Logger>

        <Root level="INFO">
            <AppenderRef ref="file"/>
            <AppenderRef ref="errorFile"/>
        </Root>
    </Loggers>
</Configuration>
{code}

> NullPointerException from AsyncLogger
> -------------------------------------
>
>                 Key: LOG4J2-2816
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2816
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.13.0
>            Reporter: Denis
>            Priority: Minor
>
> We've got several times following NullPointerException (example from our 
> stdout.log):
>   
> {code:java}
> 84449.232: [purging class loader data graph, 0.0000003 secs]
> AsyncLogger error handling event seq=1037012, 
> value='org.apache.logging.log4j.core.async.RingBufferLogEvent@2a7b2d78': 
> java.lang.NullPointerException: null
> java.lang.NullPointerException
>  at 
> org.apache.logging.log4j.core.async.RingBufferLogEvent.execute(RingBufferLogEvent.java:161)
>  at 
> org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:46)
>  at 
> org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:29)
>  at 
> com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:168)
>  at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
>  at java.lang.Thread.run(Thread.java:748)
> AsyncLogger error handling event seq=1037022, 
> value='org.apache.logging.log4j.core.async.RingBufferLogEvent@d5d330f': 
> java.lang.NullPointerException: null
> java.lang.NullPointerException
>  at 
> org.apache.logging.log4j.core.async.RingBufferLogEvent.execute(RingBufferLogEvent.java:161)
>  at 
> org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:46)
>  at 
> org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:29)
>  at 
> com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:168)
>  at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
>  at java.lang.Thread.run(Thread.java:748)
> 84450.232: [deflating idle monitors, 0.0000624 secs]
> {code}
>  
> What is interesting this NPEs always preceeded by
> {code}
> 84449.232: [purging class loader data graph, 0.0000003 secs] vm message
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to