Thanks! I updated the docs. On Mon, Sep 12, 2016 at 12:01 AM, Juan Fuentes (CISD) < [email protected]> 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 <[email protected]> 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 <[email protected]> > 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) < > >> [email protected]> 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 <[email protected]> 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 < > >> [email protected]> > >>>> 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 <[email protected]> > 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 < > >>>>> [email protected]> > >>>>>> 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 <[email protected]> > >> 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 < > >>>>>>> [email protected]> > >>>>>>>> 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 <[email protected]> > >> 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 < > >>>>>>> [email protected] > >>>>>>>>>> > >>>>>>>>>> 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 < > >>>>>>> [email protected]> > >>>>>>>>>>> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>> Do we have documentation on making custom Loggers? > >>>>>>>>>>>> > >>>>>>>>>>>> Ralph > >>>>>>>>>>>> > >>>>>>>>>>>>> On Sep 10, 2016, at 5:09 PM, Remko Popma < > >> [email protected]> > >>>>>>>>> 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 < > >>>>> [email protected] > >>>>>>>> > >>>>>>>>>>> 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 <[email protected]> > >> 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 < > >>>>>>>>>>> [email protected]> > >>>>>>>>>>>>>>> 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 < > >> [email protected]> > >>>>>>>>> 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 < > >> [email protected] > >>>>>> > >>>>>>>>>>> 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 < > >>>>>>>>>>>>>>>> [email protected]> > >>>>>>>>>>>>>>>>>> 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 <[email protected]> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> -- > >>>>>>>>>>>>>>>>> Matt Sicker <[email protected]> > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> ------------------------------ > >> ------------------------------ > >>>>>>>>>>> --------- > >>>>>>>>>>>>>>>> To unsubscribe, e-mail: log4j-user-unsubscribe@ > >>>>>>> logging.apache.org > >>>>>>>>>>>>>>>> For additional commands, e-mail: log4j-user-help@logging. > >>>>>>>>> apache.org > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> -- > >>>>>>>>>>>>>>> Matt Sicker <[email protected]> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> ------------------------------ > ------------------------------ > >>>>>>>>> --------- > >>>>>>>>>>>>>> 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: [email protected] > For additional commands, e-mail: [email protected] > >
