logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Juan Fuentes (CISD)" <juan.fuentes.c...@gmail.com>
Subject Re: Logger Wrapper + Trace API = Issues
Date Sun, 11 Sep 2016 12:37:00 GMT
I finally found why it didn’t work, was not finding the internal class because the $ needs
to be escaped under unix, so for MAC/Linux you need to put the class name containing $ between
quotes, I suppose on windows will work this way too.

Would be great to update the docs to reflect this.

The next works:
java -cp log4j-core-2.6.2.jar 'org.apache.logging.log4j.core.tools.Generate$ExtendedLogger'
com.mycomp.ExtLogger DIAG=350 NOTICE=450 VERBOSE=550 > ExtLogger.java

Juan

> On 11 Sep 2016, at 10:26, Remko Popma <remko.popma@gmail.com> wrote:
> 
> You need to also specify the log levels to generate, but the below both
> worked for me:
> 
> %JAVA_HOME%\bin\java -cp classes
> org.apache.logging.log4j.core.tools.Generate$ExtendedLogger MyLogger
> DELETEME=333 > MyLogger.java
> 
> 
> %JAVA_HOME%\bin\java -cp classes
> org.apache.logging.log4j.core.tools.Generate$CustomLogger MyLogger
> FATAL=100 ERROR=200 WARN=300 INFO=400 DEBUG=500 TRACE=600 > MyLogger.java
> 
> 
> On Sun, Sep 11, 2016 at 4:42 PM, Juan Fuentes <juanmarianofuentes@gmail.com>
> wrote:
> 
>> OS X Yosemite Version 10.10.5
>> 
>> bs-mbpr28:~ juanf$ java -version
>> java version "1.8.0_73"
>> Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
>> Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
>> 
>> Juan
>> 
>>> On 11 Sep 2016, at 09:39, Remko Popma <remko.popma@gmail.com> wrote:
>>> 
>>> What platform are you using? it used to work for me on windows...
>>> 
>>> On Sun, Sep 11, 2016 at 4:16 PM, Juan Fuentes <
>> juanmarianofuentes@gmail.com>
>>> wrote:
>>> 
>>>> I did copy paste the examples, so those where included.
>>>> 
>>>> java -cp log4j-core-2.6.2.jar org.apache.logging.log4j.core.
>> tools.Generate$CustomLogger
>>>> MyLogger > MyLogger.java
>>>> 
>>>> I tried having MyLogger in both a package and base package and also
>>>> outputting the source to console or a file.
>>>> 
>>>> Juan
>>>> 
>>>>> On 11 Sep 2016, at 09:13, Remko Popma <remko.popma@gmail.com> wrote:
>>>>> 
>>>>> You need to run either Generate$ExtendedLogger or
>> Generate$CustomLogger.
>>>>> Generate does not have a main method.
>>>>> 
>>>>> On Sun, Sep 11, 2016 at 4:10 PM, Juan Fuentes <
>>>> juanmarianofuentes@gmail.com>
>>>>> wrote:
>>>>> 
>>>>>> As I side note, I tried to use that tool this morning to see the
code
>>>> that
>>>>>> generates, and it fails to me using the examples.
>>>>>> 
>>>>>> Error: Main method not found in class org.apache.logging.log4j.core.
>>>> tools.Generate,
>>>>>> please define the main method as:
>>>>>> public static void main(String[] args)
>>>>>> or a JavaFX application class must extend
>> javafx.application.Application
>>>>>> 
>>>>>> Juan
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> On 11 Sep 2016, at 08:50, Remko Popma <remko.popma@gmail.com>
wrote:
>>>>>>> 
>>>>>>> The focus of that logger wrapper generator is on the convenience
>>>> methods
>>>>>> to
>>>>>>> generate for a new log level, that is why the tools is documented
>> under
>>>>>>> custom levels.
>>>>>>> 
>>>>>>> This still makes sense to me, but I've seen this question several
>> times
>>>>>> now
>>>>>>> so you are certainly not the only one who didn't find the docs...
>>>> That's
>>>>>>> why I'm thinking to add this to the FAQ, but other suggestions
are
>>>>>> welcome.
>>>>>>> 
>>>>>>> On Sun, Sep 11, 2016 at 3:41 PM, Ralph Goers <
>>>> ralph.goers@dslextreme.com
>>>>>>> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> I should have looked at your link first.  It seems rather
odd to
>> find
>>>>>>>> custom logger documentation under custom levels, and I didn’t
see it
>>>> in
>>>>>> the
>>>>>>>> table of contents - probably because I didn’t think to
click on
>> that.
>>>>>>>> 
>>>>>>>> Ralph
>>>>>>>> 
>>>>>>>>> On Sep 10, 2016, at 11:39 PM, Ralph Goers <
>>>> ralph.goers@dslextreme.com>
>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Do we have documentation on making custom Loggers?
>>>>>>>>> 
>>>>>>>>> Ralph
>>>>>>>>> 
>>>>>>>>>> On Sep 10, 2016, at 5:09 PM, Remko Popma <remko.popma@gmail.com>
>>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> The easier way is to use the wrapper generator tool
included in
>>>> log4j.
>>>>>>>> The tool is intended to be used with custom log levels and
is
>>>> documented
>>>>>>>> here: https://logging.apache.org/log4j/2.x/manual/
>>>> customloglevels.html#
>>>>>>>> AddingOrReplacingLevels
>>>>>>>>>> 
>>>>>>>>>> I should add this question to the faq page, this
is at least the
>> 3rd
>>>>>> or
>>>>>>>> 4th time this came up.
>>>>>>>>>> 
>>>>>>>>>> Sent from my iPhone
>>>>>>>>>> 
>>>>>>>>>>> On 2016/09/11, at 6:11, Juan Fuentes <
>> juanmarianofuentes@gmail.com
>>>>> 
>>>>>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> Thanks Matt and Ralph,
>>>>>>>>>>> 
>>>>>>>>>>> I have extended ExtendedLoggerWrapper and it
seems to work. Let’s
>>>>>> hope
>>>>>>>> I don’t stumble against other peculiarities.
>>>>>>>>>>> 
>>>>>>>>>>> Thanks again!
>>>>>>>>>>> Juan
>>>>>>>>>>> 
>>>>>>>>>>>> On 10 Sep 2016, at 21:44, Matt Sicker <boards@gmail.com>
wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> If there's an easier way to do it, that'd
be cool, but all the
>>>>>>>> bridges in
>>>>>>>>>>>> log4j itself use ExtendedLoggerWrapper as
it is.
>>>>>>>>>>>> 
>>>>>>>>>>>> On 10 September 2016 at 14:35, Ralph Goers
<
>>>>>>>> ralph.goers@dslextreme.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> Yes, you use ExtendedLoggerWrapper and
pass the fully qualified
>>>>>>>> class name
>>>>>>>>>>>>> of your wrapper class on the logMessage
call. I seem to recall
>>>>>> there
>>>>>>>> is an
>>>>>>>>>>>>> even easier way but it escapes me and
I don’t see it documented
>>>> on
>>>>>>>> the web
>>>>>>>>>>>>> site.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Ralph
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Sep 10, 2016, at 12:06 PM, Matt
Sicker <boards@gmail.com>
>>>>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> I should note that you might want
to use ExtendedLoggerWrapper
>>>> in
>>>>>>>> this
>>>>>>>>>>>>>> scenario as the methods are protected
otherwise that I just
>>>>>>>> mentioned.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> On 10 September 2016 at 14:03,
Matt Sicker <boards@gmail.com
>>> 
>>>>>>>> wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> When you make a custom Logger
wrapper, you need to use the
>>>>>>>> logMessage()
>>>>>>>>>>>>>>> methods that include the fqcn
string which should be the
>> fully
>>>>>>>> qualified
>>>>>>>>>>>>>>> class name of the logger wrapper.
See AbstractLogger for an
>>>>>>>> example.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> On 10 September 2016 at 13:57,
Juan Fuentes <
>>>>>>>>>>>>> juanmarianofuentes@gmail.com>
>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Dear all,
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> After spending half a day
on this I have decide to try luck
>> on
>>>>>> the
>>>>>>>>>>>>>>>> official mailing list, hopefully
some dev can throw some
>> light
>>>>>>>> over
>>>>>>>>>>>>> this.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> I’m trying to use a wrapper
over a Logger object to restrict
>>>> the
>>>>>>>>>>>>> methods
>>>>>>>>>>>>>>>> of the API to the ones on
my interface, for example:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> class Log4JLogger implements
com.opencms.core.logging.
>> Logger
>>>> {
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> private Logger logger;
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> public Log4JLogger(Logger
logger) {
>>>>>>>>>>>>>>>> this.logger = logger;
>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> @Override
>>>>>>>>>>>>>>>> public void traceEntry(String
message, Object... args) {
>>>>>>>>>>>>>>>> this.logger.traceEntry(message,
args);
>>>>>>>>>>>>>>>> }
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> If I combine this with a
pattern that includes the line and
>>>> the
>>>>>>>> method
>>>>>>>>>>>>>>>> name, for example:
>>>>>>>>>>>>>>>> <PatternLayout pattern="%d{yyy-MM-dd
HH:mm:ss.SSS} %-5level
>>>>>>>> %class{36}
>>>>>>>>>>>>> %L
>>>>>>>>>>>>>>>> %M - %msg%xEx%n"/>
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> I get as result the line
and method name on the wrapper,
>> what
>>>>>>>> makes
>>>>>>>>>>>>>>>> sense, but is not what I
want to. I want the ones from the
>>>> class
>>>>>>>> that
>>>>>>>>>>>>> calls
>>>>>>>>>>>>>>>> the wrapper.
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Any way to configure/specify
this in any way?
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> I would be also happy if
I can just extend a Logger and
>>>>>> implement
>>>>>>>> my
>>>>>>>>>>>>>>>> interface on it, but what
logger should I extend? How can I
>>>>>>>> create an
>>>>>>>>>>>>>>>> instance of this custom logger
afterwards?
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Thanks in advance,
>>>>>>>>>>>>>>>> Juan
>>>>>>>>>>>>>>>> ------------------------------
>> ------------------------------
>>>>>>>> ---------
>>>>>>>>>>>>>>>> To unsubscribe, e-mail: log4j-user-unsubscribe@
>>>>>> logging.apache.org
>>>>>>>>>>>>>>>> For additional commands,
e-mail: log4j-user-help@logging.
>>>>>>>> apache.org
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> Matt Sicker <boards@gmail.com>
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> 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
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> --
>>>>>>>>>>>> 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