Please do open an issue. Otherwise, this will probably get lost in the
mailing lists.
On 10 November 2016 at 18:33, Benjamin Jaton
wrote:
> I have a weird problem where using a global script seems to cause log4j to
> not be able to resolve my properties any more:
>
>
I have a weird problem where using a global script seems to cause log4j to
not be able to resolve my properties any more:
Log4j2 2.7
The code:
System.setProperty("log4j.configurationFile",
"/usr/local/apps/test.json");
LogManager.getLogger(Test.class).error("test");
The conf:
{
Ah, indeed, I have access to a variable named "logger", excellent.
Here is the script I am trying to use:
---
import java.security.MessageDigest
import org.apache.logging.log4j.ThreadContext
def genmd5(String s) {
MessageDigest.getInstance("MD5").digest(s.bytes).encodeHex().toString()
}
Can you show your script?
Looking at the code, the documentation is wrong and the Logger object is bound
to variable "logger" instead.
Which variables are available depends on which filter method is called. This
depends on where the filter is configured. The LogEvent is not available for
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" }
Can you show your configuration?
Sent from my iPhone
> On 11 Nov 2016, at 1:56, Benjamin Jaton wrote:
>
> I tried all the variables in the doc, no luck:
>
> Caused by: groovy.lang.MissingPropertyException: No such property:
> loggerName for class: Script2
>at
>
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
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 wrote:
>
> Hmm, I'm not sure, I tried
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
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 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
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
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 wrote:
> Yes Filters can be applied at different stages of the logging pipeline.
> The Filter interface has separate methods for these stages. Different
>
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 wrote:
>
> Ah,
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
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 wrote:
>
> I am applying it on the root logger.
>
>> On Tue, Nov 8, 2016 at 12:47 PM, Matt
I am applying it on the root logger.
On Tue, Nov 8, 2016 at 12:47 PM, Matt Sicker wrote:
> Where are you applying the filter? On the appender or somewhere else?
>
> On 8 November 2016 at 13:13, Benjamin Jaton
> wrote:
>
> > hello,
> >
> > I was
Where are you applying the filter? On the appender or somewhere else?
On 8 November 2016 at 13:13, Benjamin Jaton
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
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{-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
18 matches
Mail list logo