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 15:01:10 GMT
Sadly no. Maybe a note under the example its enough, hopefully people will read through.

NOTE: Under the bash shell on Unix/Mac/Linux you need to escape the $ character, so the class
name should be between single quotes 'org.apache.logging.log4j.core.tools.Generate$ExtendedLogger’.

Juan

> On 11 Sep 2016, at 16:51, Remko Popma <remko.popma@gmail.com> wrote:
> 
> On windows, quoting with double quotes works, single quotes does not work.
> 
> Does this work for you?
> 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
> 
> On Sun, Sep 11, 2016 at 10:51 PM, Remko Popma <remko.popma@gmail.com> wrote:
> 
>> Thanks!
>> I'll try this and update the docs.
>> 
>> Remko
>> 
>> Sent from my iPhone
>> 
>>> On 2016/09/11, at 21:37, Juan Fuentes (CISD) <
>> juan.fuentes.cisd@gmail.com> wrote:
>>> 
>>> 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
>>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Mime
View raw message