Hi guys, I am using logback for my application logs. I have logback.xml as a part of my fat jar that I submit to flink via command line flink run "...". When I run my application from IDE , the appenders are what I have set in my logback but when I run from command line the appender defaults to the root in the flink installation directory. How can I make sure that my application logs go to the correct appender. Here is my logback.xml file which is available in the classpath.
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="true"> <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> <resetJUL>true</resetJUL> </contextListener> <!-- To enable JMX Management --> <jmxConfigurator /> <!-- Application Logger --> <appender name="applogfile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <file>${APP_LOG_ROOT}service.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${APP_LOG_ROOT}Archive/service.%d{yyyy-MM-dd_HH}.log.gz</fileNamePattern> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} %p %c | %m%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="ASYNC_APPLOG" class="ch.qos.logback.classic.AsyncAppender"> <discardingThreshold>0</discardingThreshold> <queueSize>50000</queueSize> <appender-ref ref="applogfile" /> </appender> <logger name="com.visa.flink" level="INFO" additivity="false"> <appender-ref ref="ASYNC_APPLOG" /> </logger> <!-- Error Report Logger --> <appender name="serviceerrorfile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <file>${APP_LOG_ROOT}service-error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${APP_LOG_ROOT}Archive/service-error.%d{yyyy-MM-dd_HH}.log.gz</fileNamePattern> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} %p %c %m%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="ASYNC_STREAMING_ERROR" class="ch.qos.logback.classic.AsyncAppender"> <discardingThreshold>0</discardingThreshold> <queueSize>50000</queueSize> <appender-ref ref="serviceerrorfile" /> </appender> <logger name="streaming.error" level="ERROR" additivity="false"> <appender-ref ref="ASYNC_STREAMING_ERROR" /> </logger> <!-- STDOUT --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %m%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <root level="INFO"> <appender-ref ref="STDOUT" /> </root> </configuration> Thanks, Vishwas