Sure, here it is: { "configuration" : { "status" : "warn", "scripts": { "ScriptFile": { "name":"test.filter", "path": "/usr/local/apps/test.groovy" } }, "ScriptFilter": { "onMatch": "ACCEPT", "onMisMatch": "DENY", "ScriptRef": { "ref": "test.filter" } }, "appenders" : { "appender" : [ { "type" : "Console", "name" : "STDOUT", "PatternLayout" : { "pattern" : "%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1.}:%L - [%X{md5message}] %m%n" } } ] }, "loggers" : { "root" : { "level" : "INFO", "additivity" : "false", "includeLocation" : "true", "AppenderRef" : { "ref" : "STDOUT" } } } } }
On Thu, Nov 10, 2016 at 9:01 AM, Remko Popma <remko.po...@gmail.com> wrote: > Can you show your configuration? > > Sent from my iPhone > > > On 11 Nov 2016, at 1:56, Benjamin Jaton <benjamin.ja...@gmail.com> > wrote: > > > > I tried all the variables in the doc, no luck: > > > > Caused by: groovy.lang.MissingPropertyException: No such property: > > loggerName for class: Script2 > > at > > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap( > ScriptBytecodeAdapter.java:53) > > at > > org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty( > PogoGetPropertySite.java:52) > > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite. > callGroovyObjectGetProperty(AbstractCallSite.java:307) > > at Script2.run(Script2.groovy:8) > > at > > org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval( > GroovyScriptEngineImpl.java:343) > > ... 12 more > > > >> On Wed, Nov 9, 2016 at 10:54 PM, Remko Popma <remko.po...@gmail.com> > wrote: > >> > >> According to this https://logging.apache.org/ > >> log4j/2.x/manual/filters.html#Script you should be able to use the > >> variable named loggerName in global script filters. > >> > >> Sent from my iPhone > >> > >>> On 10 Nov 2016, at 4:31, Benjamin Jaton <benjamin.ja...@gmail.com> > >> wrote: > >>> > >>> Hmm, I'm not sure, I tried to do this in groovy: > >>> > >>> println(args[0]) > >>> > >>> But I get: > >>> Caused by: groovy.lang.MissingPropertyException: No such property: > args > >> for > >>> class: Script2 > >>> at > >>> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap( > >> ScriptBytecodeAdapter.java:53) > >>> at > >>> org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty( > >> PogoGetPropertySite.java:52) > >>> at > >>> org.codehaus.groovy.runtime.callsite.AbstractCallSite. > >> callGroovyObjectGetProperty(AbstractCallSite.java:307) > >>> at Script2.run(Script2.groovy:8) > >>> at > >>> org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval( > >> GroovyScriptEngineImpl.java:343) > >>> ... 12 more > >>> > >>> Then I tried: > >>> > >>> println(parameters) > >>> > >>> But it returns 'null' > >>> > >>>> On Tue, Nov 8, 2016 at 5:18 PM, Remko Popma <remko.po...@gmail.com> > >> wrote: > >>>> > >>>> All filter methods have a Logger object as the first parameter. Can > you > >>>> use that? > >>>> > >>>> Sent from my iPhone > >>>> > >>>>> On 9 Nov 2016, at 9:45, Benjamin Jaton <benjamin.ja...@gmail.com> > >> wrote: > >>>>> > >>>>> As far as I know, there is no way for a global filter to know which > >>>> logger > >>>>> we're working it for. > >>>>> Which in my case is not the best since I would compute a hash for all > >> the > >>>>> messages of all my loggers, instead of just the one I need them for. > >>>>> > >>>>> On Tue, Nov 8, 2016 at 4:30 PM, Benjamin Jaton < > >> benjamin.ja...@gmail.com > >>>>> > >>>>> wrote: > >>>>> > >>>>>> Ah, I can't use 'logEvent' but I can use 'message', perfect, thank > >> you! > >>>>>> > >>>>>>> On Tue, Nov 8, 2016 at 4:21 PM, Remko Popma <remko.po...@gmail.com > > > >>>> wrote: > >>>>>>> > >>>>>>> Yes Filters can be applied at different stages of the logging > >> pipeline. > >>>>>>> The Filter interface has separate methods for these stages. > Different > >>>>>>> parameters are passed to these methods. > >>>>>>> > >>>>>>> Sent from my iPhone > >>>>>>> > >>>>>>>> On 9 Nov 2016, at 8:57, Benjamin Jaton <benjamin.ja...@gmail.com> > >>>>>>> wrote: > >>>>>>>> > >>>>>>>> Ah, interesting. I seem to be able to make modification using this > >>>>>>> global > >>>>>>>> filter. > >>>>>>>> > >>>>>>>> However I don't seem to have access to the log event that way? > >>>>>>>> > >>>>>>>> Caused by: groovy.lang.MissingPropertyException: No such > property: > >>>>>>> logEvent > >>>>>>>> for class: Script2 > >>>>>>>> at > >>>>>>>> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(Scr > >>>>>>> iptBytecodeAdapter.java:53) > >>>>>>>> at > >>>>>>>> org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.get > >>>>>>> Property(PogoGetPropertySite.java:52) > >>>>>>>> at > >>>>>>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGr > >>>>>>> oovyObjectGetProperty(AbstractCallSite.java:307) > >>>>>>>> at Script2.run(Script2.groovy:8) > >>>>>>>> at > >>>>>>>> org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(Groov > >>>>>>> yScriptEngineImpl.java:343) > >>>>>>>> ... 12 more > >>>>>>>> > >>>>>>>>> On Tue, Nov 8, 2016 at 3:47 PM, Remko Popma < > remko.po...@gmail.com > >>> > >>>>>>> wrote: > >>>>>>>>> > >>>>>>>>> If you make it a global filter it will get applied before the > >>>> LogEvent > >>>>>>> is > >>>>>>>>> constructed. Please try that. > >>>>>>>>> > >>>>>>>>> Remko > >>>>>>>>> > >>>>>>>>> Sent from my iPhone > >>>>>>>>> > >>>>>>>>>> On 9 Nov 2016, at 7:02, Benjamin Jaton < > benjamin.ja...@gmail.com> > >>>>>>> wrote: > >>>>>>>>>> > >>>>>>>>>> I am applying it on the root logger. > >>>>>>>>>> > >>>>>>>>>>> On Tue, Nov 8, 2016 at 12:47 PM, Matt Sicker <boa...@gmail.com > > > >>>>>>> wrote: > >>>>>>>>>>> > >>>>>>>>>>> Where are you applying the filter? On the appender or somewhere > >>>> else? > >>>>>>>>>>> > >>>>>>>>>>> On 8 November 2016 at 13:13, Benjamin Jaton < > >>>>>>> benjamin.ja...@gmail.com> > >>>>>>>>>>> wrote: > >>>>>>>>>>> > >>>>>>>>>>>> hello, > >>>>>>>>>>>> > >>>>>>>>>>>> I was playing with log4j2 filters to generate a hash in groovy > >>>> that > >>>>>>> I > >>>>>>>>>>> would > >>>>>>>>>>>> put in the threadcontext map, and then use in my log pattern: > >>>>>>>>>>>> > >>>>>>>>>>>> %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1.}:%L - %m [%X{myhash}] > >>>>>>>>>>>> > >>>>>>>>>>>> But the hash is printed on the NEXT log message. > >>>>>>>>>>>> My understanding is that at this point the log message is > >> already > >>>>>>>>>>> formatted > >>>>>>>>>>>> and final. > >>>>>>>>>>>> > >>>>>>>>>>>> Is there another way I can use a custom script where the log > >> event > >>>>>>> can > >>>>>>>>>>>> actually be modified? > >>>>>>>>>>>> > >>>>>>>>>>>> Thanks, > >>>>>>>>>>>> Ben > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> -- > >>>>>>>>>>> Matt Sicker <boa...@gmail.com> > >>>>>>>>>>> > >>>>>>>>> > >>>>>>>>> ------------------------------------------------------------ > >>>> --------- > >>>>>>>>> To unsubscribe, e-mail: log4j-user-unsubscribe@ > logging.apache.org > >>>>>>>>> For additional commands, e-mail: log4j-user-help@logging. > >> apache.org > >>>>>>>>> > >>>>>>>>> > >>>>>>> > >>>>>>> ------------------------------------------------------------ > >> --------- > >>>>>>> To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > >>>>>>> For additional commands, e-mail: log4j-user-help@logging. > apache.org > >>>>>>> > >>>>>>> > >>>>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> 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 > >