[
https://issues.apache.org/jira/browse/LOG4J2-1229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15067163#comment-15067163
]
Dmitriy Dumanskiy edited comment on LOG4J2-1229 at 12/21/15 10:21 PM:
----------------------------------------------------------------------
{code}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<File name="admin" fileName="${sys:logs.folder}/admin.log">
<PatternLayout>
<pattern>%d{HH:mm:ss.SSS} - %msg%n</pattern>
</PatternLayout>
</File>
<RollingFile name="workersLog" fileName="${sys:logs.folder}/worker.log"
filePattern="${sys:logs.folder}/archive/worker.log.%d{yyyy-MM-dd}">
<PatternLayout>
<pattern>%d{HH:mm:ss.SSS} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
<RollingFile name="statsLog" fileName="${sys:logs.folder}/stats.log"
filePattern="${sys:logs.folder}/archive/stats.log.%d{yyyy-MM-dd}">
<PatternLayout>
<pattern>%msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
<Routing name="userLog">
<Routes pattern="$${ctx:user}">
<!-- This route is chosen if ThreadContext has no value for key
"user". -->
<Route key="$${ctx:user}">
<RollingFile name="default"
fileName="${sys:logs.folder}/blynk.log"
filePattern="${sys:logs.folder}/archive/blynk.log.%d{yyyy-MM-dd}">
<PatternLayout>
<pattern>%d{HH:mm:ss.SSS} %-5level -
%msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
</Route>
<!-- This route is chosen if ThreadContext has a value for
"user"
The value dynamically determines the name of the log file. -->
<Route>
<File name="${ctx:user}"
fileName="${sys:logs.folder}/users/${ctx:user}.log">
<PatternLayout>
<pattern>%d{HH:mm:ss.SSS} %-5level -
%msg%n</pattern>
</PatternLayout>
</File>
</Route>
</Routes>
</Routing>
<Routing name="dataStorage">
<Routes pattern="$${ctx:user}_$${ctx:dashId}_$${ctx:pin}">
<!-- This route is chosen if ThreadContext has a value for
"user"
The value dynamically determines the name of the log file. -->
<Route>
<RollingFile name="$${ctx:user}_$${ctx:dashId}_$${ctx:pin}"
fileName="${sys:data.folder}/data/${ctx:user}/${ctx:dashId}_${ctx:pin}.csv"
filePattern="${sys:data.folder}/data/${ctx:user}/${ctx:dashId}_${ctx:pin}-%d{yyyy-MM-dd}.csv.gz">
<PatternLayout>
<pattern>%msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
</Route>
</Routes>
</Routing>
</Appenders>
<Loggers>
<Logger name="cc.blynk.server.workers.ProfileSaverWorker" level="debug"
additivity="false">
<appender-ref ref="workersLog"/>
</Logger>
<Logger name="cc.blynk.server.workers.timer.TimerWorker" level="debug"
additivity="false">
<appender-ref ref="workersLog"/>
</Logger>
<Logger name="cc.blynk.server.workers.StatsWorker" level="debug"
additivity="false">
<appender-ref ref="statsLog"/>
</Logger>
<Logger name="cc.blynk.server.core.administration" level="debug"
additivity="false">
<appender-ref ref="admin"/>
</Logger>
<Logger name="cc.blynk.server.handlers.http.admin" level="debug"
additivity="false">
<appender-ref ref="admin"/>
</Logger>
<Logger name="cc.blynk.server.dao.ReportingDao" level="info"
additivity="false">
<appender-ref ref="dataStorage"/>
</Logger>
<Root level="debug">
<AppenderRef ref="userLog"/>
</Root>
</Loggers>
</Configuration>
{code}
{code}
System.setProperty("Log4jContextSelector",
"org.apache.logging.log4j.core.async.AsyncLoggerContextSelector");
System.setProperty("AsyncLogger.RingBufferSize", String.valueOf(8 *
1024));
{code}
POM :
{code}
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.5</version>
</dependency>
{code}
Problem is with dataStorage routing.
was (Author: doom369):
{code}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<File name="admin" fileName="${sys:logs.folder}/admin.log">
<PatternLayout>
<pattern>%d{HH:mm:ss.SSS} - %msg%n</pattern>
</PatternLayout>
</File>
<RollingFile name="workersLog" fileName="${sys:logs.folder}/worker.log"
filePattern="${sys:logs.folder}/archive/worker.log.%d{yyyy-MM-dd}">
<PatternLayout>
<pattern>%d{HH:mm:ss.SSS} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
<RollingFile name="statsLog" fileName="${sys:logs.folder}/stats.log"
filePattern="${sys:logs.folder}/archive/stats.log.%d{yyyy-MM-dd}">
<PatternLayout>
<pattern>%msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
<Routing name="userLog">
<Routes pattern="$${ctx:user}">
<!-- This route is chosen if ThreadContext has no value for key
"user". -->
<Route key="$${ctx:user}">
<RollingFile name="default"
fileName="${sys:logs.folder}/blynk.log"
filePattern="${sys:logs.folder}/archive/blynk.log.%d{yyyy-MM-dd}">
<PatternLayout>
<pattern>%d{HH:mm:ss.SSS} %-5level -
%msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
</Route>
<!-- This route is chosen if ThreadContext has a value for
"user"
The value dynamically determines the name of the log file. -->
<Route>
<File name="${ctx:user}"
fileName="${sys:logs.folder}/users/${ctx:user}.log">
<PatternLayout>
<pattern>%d{HH:mm:ss.SSS} %-5level -
%msg%n</pattern>
</PatternLayout>
</File>
</Route>
</Routes>
</Routing>
<Routing name="dataStorage">
<Routes pattern="$${ctx:user}_$${ctx:dashId}_$${ctx:pin}">
<!-- This route is chosen if ThreadContext has a value for
"user"
The value dynamically determines the name of the log file. -->
<Route>
<RollingFile name="$${ctx:user}_$${ctx:dashId}_$${ctx:pin}"
fileName="${sys:data.folder}/data/${ctx:user}/${ctx:dashId}_${ctx:pin}.csv"
filePattern="${sys:data.folder}/data/${ctx:user}/${ctx:dashId}_${ctx:pin}-%d{yyyy-MM-dd}.csv.gz">
<PatternLayout>
<pattern>%msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
</Route>
</Routes>
</Routing>
</Appenders>
<Loggers>
<Logger name="cc.blynk.server.workers.ProfileSaverWorker" level="debug"
additivity="false">
<appender-ref ref="workersLog"/>
</Logger>
<Logger name="cc.blynk.server.workers.timer.TimerWorker" level="debug"
additivity="false">
<appender-ref ref="workersLog"/>
</Logger>
<Logger name="cc.blynk.server.workers.StatsWorker" level="debug"
additivity="false">
<appender-ref ref="statsLog"/>
</Logger>
<Logger name="cc.blynk.server.core.administration" level="debug"
additivity="false">
<appender-ref ref="admin"/>
</Logger>
<Logger name="cc.blynk.server.handlers.http.admin" level="debug"
additivity="false">
<appender-ref ref="admin"/>
</Logger>
<Logger name="cc.blynk.server.dao.ReportingDao" level="info"
additivity="false">
<appender-ref ref="dataStorage"/>
</Logger>
<Root level="debug">
<AppenderRef ref="userLog"/>
</Root>
</Loggers>
</Configuration>
{code}
{code}
System.setProperty("Log4jContextSelector",
"org.apache.logging.log4j.core.async.AsyncLoggerContextSelector");
System.setProperty("AsyncLogger.RingBufferSize", String.valueOf(8 *
1024));
{code}
POM :
{code}
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.5</version>
</dependency>
{code}
> Error creating logger
> ---------------------
>
> Key: LOG4J2-1229
> URL: https://issues.apache.org/jira/browse/LOG4J2-1229
> Project: Log4j 2
> Issue Type: Bug
> Components: Appenders
> Affects Versions: 2.4.1, 2.5
> Environment: Ubuntu 14.04
> Reporter: Dmitriy Dumanskiy
> Fix For: 2.5.1
>
>
> I have a lot of VMs where everything is fine. But on some of them I get
> below stack trace. I have a feeling it somehow related with access rights.
> Here is stack trace :
> {code}
> 2015-12-21 08:05:06,036 AsyncLogger-1 ERROR Unable to invoke factory method
> in class class org.apache.logging.log4j.core.appender.RollingFileAppender for
> element RollingFile. java.lang.reflect.InvocationTargetException
> at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at
> org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:136)
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:813)
> at
> org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:753)
> at
> org.apache.logging.log4j.core.appender.routing.RoutingAppender.createAppender(RoutingAppender.java:152)
> at
> org.apache.logging.log4j.core.appender.routing.RoutingAppender.getControl(RoutingAppender.java:136)
> at
> org.apache.logging.log4j.core.appender.routing.RoutingAppender.append(RoutingAppender.java:110)
> at
> org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:152)
> at
> org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:125)
> at
> org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:116)
> at
> org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
> at
> org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:390)
> at
> org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:378)
> at
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:362)
> at
> org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:79)
> at
> org.apache.logging.log4j.core.async.AsyncLogger.actualAsyncLog(AsyncLogger.java:385)
> at
> org.apache.logging.log4j.core.async.RingBufferLogEvent.execute(RingBufferLogEvent.java:103)
> at
> org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:43)
> at
> org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:28)
> at
> com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.IllegalStateException: ManagerFactory
> [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@346629f5]
> unable to create manager for [/data/<email address here>/1_v4.csv] with data
> [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@6d48f4b0]
> at
> org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:73)
> at
> org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:61)
> at
> org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:79)
> at
> org.apache.logging.log4j.core.appender.RollingFileAppender.createAppender(RollingFileAppender.java:193)
> ... 25 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]