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 11:57:08 GMT
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

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