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 14:51:56 GMT
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
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message