Hi Matt, Thank you for your response. I figured out the issue. Had to add the "packages" attribute in the <Configuration> element which I had not added before.
On Wed, Jan 10, 2018 at 3:37 AM, Ralph Goers <ralph.go...@dslextreme.com> wrote: > Shoot. Replied to the wrong email. > > Sent from my iPhone > > > On Jan 9, 2018, at 3:00 PM, Ralph Goers <ralph.go...@dslextreme.com> > wrote: > > > > Maybe, but the point is that the batch is managed by the appender, so > there is no need for a new method in the Appender interface. > > > > Ralph > > > >> On Jan 9, 2018, at 2:20 PM, Matt Sicker <boa...@gmail.com> wrote: > >> > >> A common source of problems with custom plugins is related to the > >> Log4j2Plugins.dat file not being generated or being included on the > >> classpath. If you shade everything into a single jar, for example, you > need > >> to use a custom shade rule to merge the plugin dat files (I've seen some > >> shade plugins include this feature natively for log4j2 specifically). > >> > >> If you could share more info about how you build your application, that > >> would be super helpful! > >> > >>> On 9 January 2018 at 12:28, Asma Zinneera Jabir <azinne...@gmail.com> > wrote: > >>> > >>> I am using the Routing Appender in Log4J2 to route to different log > files. > >>> The path is determined by a custom LookUp. The configuration and the > lookup > >>> are as follows. > >>> > >>> *Log4j2.xml Routing appender* > >>> > >>> <Routing name="Routing"> > >>> <Routes pattern="$${path:key2}"> > >>> <Route> > >>> <RollingFile name="ABC_LOGFILE" > >>> fileName="${sys:abc.home}/${path:key2}.log" > >>> > >>> filePattern="${sys:abc.home}/${path:key2}-%d{MM-dd-yyyy}-%i.log"> > >>> <PatternLayout pattern="[%d] %5p {%c} - %m%ex%n" /> > >>> <Policies> > >>> <SizeBasedTriggeringPolicy size="50 MB" /> > >>> </Policies> > >>> <DefaultRolloverStrategy max="100" /> > >>> </RollingFile> > >>> </Route> > >>> </Routes> > >>> </Routing> > >>> > >>> *Custom Lookup* > >>> > >>> @Plugin(name = "path", category = StrLookup.CATEGORY) > >>> public class LogFilePathLookup implements StrLookup { > >>> private static String logFilePath = "abc"; > >>> > >>> @Override > >>> public String lookup(String key) { > >>> return null; > >>> } > >>> > >>> @Override > >>> public String lookup(LogEvent logEvent, String key) { > >>> return logFilePath; > >>> } > >>> > >>> /** > >>> * Sets the log file path. > >>> * > >>> * @param logFilePath log file path > >>> */ > >>> public static void setLogFilePath(String logFilePath) { > >>> LogFilePathLookup.logFilePath = logFilePath; > >>> } > >>> } > >>> > >>> This works perfectly when I run on the IDE (Intellij IDEA) with the VM > >>> options set as > >>> -Dlog4j.configurationFile=/path/to/log4j2.xml > >>> -Dabc.home=/home/asma/abchome > >>> > >>> and some program arguments. But when the same is run in the terminal as > >>> > >>> java -Dlog4j.configurationFile=/path/to/log4j2.xml > >>> -Dabc.home=/home/asma/abchome -jar *<program_arguments>* > >>> > >>> the name of the log file getting created is ${path:key2}.log, meaning > it is > >>> not replaced by the lookup String value. What could be the reason for > this? > >>> > >>> > >>> > >>> Regards, > >>> Asma > >>> > >> > >> > >> > >> -- > >> Matt Sicker <boa...@gmail.com> > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > > For additional commands, e-mail: log4j-user-h...@logging.apache.org > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > For additional commands, e-mail: log4j-user-h...@logging.apache.org > >