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 06:27:15 GMT
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

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