I use log4j2 and I would like to add a prefix to all my messages. This prefix is passed to the constructor parameter and it depends on the instance of the class. So we're at the object level (not class or thread).
For example, I have an A
class instantiated like new A(152)
, so when I use log.error("message")
on this class, 152:
is written just before the message. For new A(155)
, 155:
will be displayed instead.
Thanks for your help
One solution is a wrapper class.
Based on Bill Clars answer:
Then you set as instance variable in your class
try this
Here is one simple workaround solution: you can wrap the string with a method that adds the prefix to it and returns concatenated string to the
error
method.Advantages:
%X{prefix}
to the log4j2 configurationDisadvantages:
Use MDC to achive this
In your constructor put
and in your XML use it like this in pattern