logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benjamin Jaton <benjamin.ja...@gmail.com>
Subject Re: Log4j2 script to generate hash
Date Thu, 10 Nov 2016 22:15:25 GMT
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.popma@gmail.com> wrote:

> Can you show your configuration?
>
> Sent from my iPhone
>
> > On 11 Nov 2016, at 1:56, Benjamin Jaton <benjamin.jaton@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.popma@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.jaton@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.popma@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.jaton@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.jaton@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.popma@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.jaton@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.popma@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.jaton@gmail.com>
> >>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>> I am applying it on the root logger.
> >>>>>>>>>>
> >>>>>>>>>>> On Tue, Nov 8, 2016 at 12:47 PM, Matt Sicker
<boards@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.jaton@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 <boards@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-unsubscribe@logging.apache.org
> >>>>>>> For additional commands, e-mail: log4j-user-help@logging.
> apache.org
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> 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-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message