logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remko Popma <remko.po...@gmail.com>
Subject Re: Logger Wrapper + Trace API = Issues
Date Sun, 11 Sep 2016 17:07:09 GMT
Thanks! I updated the docs.

On Mon, Sep 12, 2016 at 12:01 AM, Juan Fuentes (CISD) <
juan.fuentes.cisd@gmail.com> wrote:

> 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
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message