logging-log4j-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Gregory <garydgreg...@gmail.com>
Subject Re: Set the file name based on command line args
Date Thu, 07 Aug 2014 17:02:49 GMT
Please see this experiment: https://issues.apache.org/jira/browse/LOG4J2-771

Gary


On Thu, Aug 7, 2014 at 7:57 AM, Gary Gregory <garydgregory@gmail.com> wrote:

> On an Oracle JVM, you use a system property lookup to get the
> "sun.java.command" system property which gives you the whole command line
> but we do not have a syntax to parse it...
>
> Gary
>
>
> On Thu, Aug 7, 2014 at 2:27 AM, Gary Gregory <garydgregory@gmail.com>
> wrote:
>
>> It'll be more complicated than just grabbing the main args of course.
>>
>> If I say something like ${main:0} that seems easy to deal with, but when
>> I say ${main:--file} or ${main:-f} or ${main:-file}, that should pickup the
>> _next_ arg in the array. What if it is missing or the next arg is another
>> dash option? Too bad I guess. What are the rules?
>>
>> I could see two lookup classes:
>> - One is a named Map Lookup built from a String[], which would be a
>> singleton called by the main method:
>> MainArgumentsLookup.SINGELTON.set(args); Is the args array a reference or a
>> deep copy?
>> - Another is the more complex and vendor dependent (and unproven) stack
>> walker.
>>
>> Gary
>>
>>
>> On Wed, Aug 6, 2014 at 11:45 PM, Matt Sicker <boards@gmail.com> wrote:
>>
>>> Hey, it's better than having to use sun.util.Reflection!
>>>
>>>
>>> On 6 August 2014 20:19, Gary Gregory <garydgregory@gmail.com> wrote:
>>>
>>> > And worse: vendor specific!
>>> >
>>> > Gary
>>> >
>>> >
>>> > On Wed, Aug 6, 2014 at 9:05 PM, Remko Popma <remko.popma@gmail.com>
>>> wrote:
>>> >
>>> > > Oooh... A little naughty, but a lot of fun! :-)
>>> > > Thanks for the pointer!
>>> > >
>>> > > Sent from my iPhone
>>> > >
>>> > > > On 2014/08/07, at 9:44, Gary Gregory <garydgregory@gmail.com>
>>> wrote:
>>> > > >
>>> > > > With some debug API hackery:
>>> > > >
>>> > >
>>> >
>>> http://docs.oracle.com/javase/7/docs/jdk/api/jpda/jdi/com/sun/jdi/StackFrame.html
>>> > > >
>>> > > > Gary
>>> > > >
>>> > > >
>>> > > >> On Wed, Aug 6, 2014 at 8:36 PM, Remko Popma <
>>> remko.popma@gmail.com>
>>> > > wrote:
>>> > > >>
>>> > > >> I don't follow... If you walk the stack trace you can find
the
>>> name of
>>> > > the
>>> > > >> original class whose main() method was called, but how would
that
>>> give
>>> > > you
>>> > > >> access to the main method's parameter values?
>>> > > >>
>>> > > >> Sent from my iPhone
>>> > > >>
>>> > > >>> On 2014/08/07, at 9:26, Gary Gregory <garydgregory@gmail.com>
>>> wrote:
>>> > > >>>
>>> > > >>> Yes you are right but the stack walker could be used even
if you
>>> do
>>> > not
>>> > > >> control to source for main. Maybe a script calls a main and
then
>>> my
>>> > app
>>> > > >> plugin gets called and I want to also follow the verbose command
>>> line
>>> > > >> setting.
>>> > > >>>
>>> > > >>>
>>> > > >>> Gary
>>> > > >>>
>>> > > >>> <div>-------- Original message --------</div><div>From:
Ralph
>>> Goers <
>>> > > >> ralph.goers@dslextreme.com> </div><div>Date:08/06/2014
 19:18
>>> > > >> (GMT-05:00) </div><div>To: Log4J Users List <
>>> > > >> log4j-user@logging.apache.org> </div><div>Subject:
Re: Set the
>>> file
>>> > > name
>>> > > >> based on command line args </div><div>
>>> > > >>> </div>Wouldn’t it be easier to have a Lookup that
your main
>>> called
>>> > and
>>> > > >> just passed the arguments?  But yeah, it should be possible
to do
>>> what
>>> > > you
>>> > > >> are suggesting.
>>> > > >>>
>>> > > >>> Ralph
>>> > > >>>
>>> > > >>>> On Aug 6, 2014, at 4:09 PM, Gary Gregory <
>>> garydgregory@gmail.com>
>>> > > >> wrote:
>>> > > >>>>
>>> > > >>>> I wonder if we could write a "MainArgumentsLookup"
that finds
>>> the
>>> > main
>>> > > >>>> thread and walks up the stack to the public static
>>> main(String[])
>>> > main
>>> > > >>>> methods and gets the arguments from the stack...
>>> > > >>>>
>>> > > >>>> Gary
>>> > > >>>>
>>> > > >>>>
>>> > > >>>> On Wed, Aug 6, 2014 at 6:54 PM, Ralph Goers <
>>> > > ralph.goers@dslextreme.com
>>> > > >>>
>>> > > >>>> wrote:
>>> > > >>>>
>>> > > >>>>> Well….
>>> > > >>>>>
>>> > > >>>>> You would really be passing the name of the file
to the
>>> Appender,
>>> > > not a
>>> > > >>>>> Logger.  Loggers only reference Appenders so you
can’t really
>>> > > configure
>>> > > >>>>> them with Appender configuration data. That said,
Log4j 2
>>> provides
>>> > a
>>> > > >> few
>>> > > >>>>> ways you could do this:
>>> > > >>>>> 1. Set a system property and reference it via
>>> ${sys:propertyName}
>>> > in
>>> > > >> the
>>> > > >>>>> configuration.  The manual has examples of this.
>>> > > >>>>> 2. Create a custom Lookup Plugin and then register
the file
>>> name
>>> > with
>>> > > >> the
>>> > > >>>>> Lookup.  Then reference it from the configuration
as
>>>  ${myLookup:
>>> > > key}
>>> > > >>>>> where myLookup is the name of your custom Lookup
and key is the
>>> > name
>>> > > >> that
>>> > > >>>>> represents the file name value.
>>> > > >>>>> 3. Create a custom Configuration the extends XMLConfiguration
>>> or
>>> > > >>>>> JSONConfiguration. Pass the file name to that
class and have
>>> it add
>>> > > >> that as
>>> > > >>>>> a property to the properties Map in the configuration.
The XML
>>> > could
>>> > > >> then
>>> > > >>>>> just reference it as ${propertyName}.
>>> > > >>>>>
>>> > > >>>>> Ralph
>>> > > >>>>>
>>> > > >>>>>> On Aug 6, 2014, at 2:03 PM, Arwen Pond <apond@book.com>
>>> wrote:
>>> > > >>>>>>
>>> > > >>>>>> My application takes a parameter where the
user can specify
>>> the
>>> > log
>>> > > >>>>> file.  I'd like to pass this parameter to the
Logger which
>>> uses a
>>> > > >>>>> FileAppender.  I am not sure how to do this in
log4j 2.
>>> > > >>>>>>
>>> > > >>>>>> Thanks,
>>> > > >>>>>> Arwen
>>> > > >>>>>>
>>> > > >>>>>>
>>> > > >>>>>> This electronic mail message contains information
that (a) is
>>> or
>>> > > >>>>>> may be CONFIDENTIAL, PROPRIETARY IN NATURE,
OR OTHERWISE
>>> > > >>>>>> PROTECTED
>>> > > >>>>>> BY LAW FROM DISCLOSURE, and (b) is intended
only for the use
>>> of
>>> > > >>>>>> the addressee(s) named herein.  If you are
not an intended
>>> > > >>>>>> recipient, please contact the sender immediately
and take the
>>> > > >>>>>> steps necessary to delete the message completely
from your
>>> > > >>>>>> computer system.
>>> > > >>>>>>
>>> > > >>>>>> Not Intended as a Substitute for a Writing:
Notwithstanding
>>> the
>>> > > >>>>>> Uniform Electronic Transaction Act or any
other law of similar
>>> > > >>>>>> effect, absent an express statement to the
contrary, this
>>> e-mail
>>> > > >>>>>> message, its contents, and any attachments
hereto are not
>>> > > >>>>>> intended
>>> > > >>>>>> to represent an offer or acceptance to enter
into a contract
>>> and
>>> > > >>>>>> are not otherwise intended to bind this sender,
>>> > > >>>>>> barnesandnoble.com
>>> > > >>>>>> llc, barnesandnoble.com inc. or any other
person or entity.
>>> > > >>>>>
>>> > > >>>>>
>>> > > >>>>>
>>> > ---------------------------------------------------------------------
>>> > > >>>>> To unsubscribe, e-mail:
>>> log4j-user-unsubscribe@logging.apache.org
>>> > > >>>>> For additional commands, e-mail:
>>> > log4j-user-help@logging.apache.org
>>> > > >>>>
>>> > > >>>>
>>> > > >>>> --
>>> > > >>>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
>>> > > >>>> Java Persistence with Hibernate, Second Edition
>>> > > >>>> <http://www.manning.com/bauer3/>
>>> > > >>>> JUnit in Action, Second Edition <
>>> http://www.manning.com/tahchiev/>
>>> > > >>>> Spring Batch in Action <http://www.manning.com/templier/>
>>> > > >>>> Blog: http://garygregory.wordpress.com
>>> > > >>>> Home: http://garygregory.com/
>>> > > >>>> Tweet! http://twitter.com/GaryGregory
>>> > > >>>
>>> > > >>>
>>> > > >>>
>>> ---------------------------------------------------------------------
>>> > > >>> 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
>>> > > >
>>> > > >
>>> > > > --
>>> > > > E-Mail: garydgregory@gmail.com | ggregory@apache.org
>>> > > > Java Persistence with Hibernate, Second Edition
>>> > > > <http://www.manning.com/bauer3/>
>>> > > > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>> > > > Spring Batch in Action <http://www.manning.com/templier/>
>>> > > > Blog: http://garygregory.wordpress.com
>>> > > > Home: http://garygregory.com/
>>> > > > Tweet! http://twitter.com/GaryGregory
>>> > >
>>> > > ---------------------------------------------------------------------
>>> > > To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
>>> > > For additional commands, e-mail: log4j-user-help@logging.apache.org
>>> > >
>>> > >
>>> >
>>> >
>>> > --
>>> > E-Mail: garydgregory@gmail.com | ggregory@apache.org
>>> > Java Persistence with Hibernate, Second Edition
>>> > <http://www.manning.com/bauer3/>
>>> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>> > Spring Batch in Action <http://www.manning.com/templier/>
>>> > Blog: http://garygregory.wordpress.com
>>> > Home: http://garygregory.com/
>>> > Tweet! http://twitter.com/GaryGregory
>>> >
>>>
>>>
>>>
>>> --
>>> Matt Sicker <boards@gmail.com>
>>>
>>
>>
>>
>> --
>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
>> Java Persistence with Hibernate, Second Edition
>> <http://www.manning.com/bauer3/>
>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>> Spring Batch in Action <http://www.manning.com/templier/>
>>
>> Blog: http://garygregory.wordpress.com
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
>>
>
>
>
> --
> E-Mail: garydgregory@gmail.com | ggregory@apache.org
> Java Persistence with Hibernate, Second Edition
> <http://www.manning.com/bauer3/>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> Spring Batch in Action <http://www.manning.com/templier/>
> Blog: http://garygregory.wordpress.com
> Home: http://garygregory.com/
> Tweet! http://twitter.com/GaryGregory
>



-- 
E-Mail: garydgregory@gmail.com | ggregory@apache.org
Java Persistence with Hibernate, Second Edition
<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

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