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

Reply via email to