|
From: Kevin G. <ke...@go...> - 2002-12-09 19:34:49
|
That looks like a good solution to me, anybody else have any thoughts?
Kai Poitschke wrote:
> Hi,
> how about a construct like this in the config file?
>
> log4perl.appender.File.filename = sub { return GetLogflleName(); }
>
> Kai
>
>
> On Thursday 05 December 2002 20:20, Duncan Cameron wrote:
>
>>On 2002-12-03 Mike Schilli <msc...@ao...> wrote:
>>
>>>Hi there,
>>>
>>>Kai Poitschke has brought up an interestingfeature request: Suppose,
>>>your application had a configuration "-l logfilename" option to specify
>>>the name of the log file to be used. Now, if you have an external
>>>configuration file (as opposed to a string ref passed to init()), how
>>>would you be able to adapt the config file setting in the code?
>>>
>>>He suggests to have init() overwrite certain properties of the config
>>>file like in:
>>>
>>>Dump2OWH.conf:
>>>
>>>log4perl.category.Dump2OWH = INFO, File, Screen
>>>
>>>log4perl.appender.File = Log::Dispatch::File
>>>log4perl.appender.File.filename = Dump2OWH.log
>>>log4perl.appender.File.mode = write
>>>log4perl.appender.File.layout = Log::Log4perl::Layout::PatternLayout
>>>log4perl.appender.File.layout.ConversionPattern = %d: %m%n
>>>
>>>log4perl.appender.Screen = Log::Dispatch::Screen
>>>log4perl.appender.Screen.stderr = 0
>>>log4perl.appender.Screen.layout = Log::Log4perl::Layout::PatternLayout
>>>log4perl.appender.Screen.layout.ConversionPattern = %-5p> %m%n
>>>
>>>
>>>test.pl:
>>># Einstellungen z.B. aus Programmflags bestimmt
>>>$more_conf = q(log4perl.appender.File.filename = test.log
>>> log4perl.appender.File.mode = append);
>>>
>>>Log::Log4perl::init('Dump2OWH.conf', $more_conf);
>>>
>>>
>>>I can see at least one other way to implement it: a
>>>not-yet-implemented-in-Log4perl feature like variables in config files
>>>(log4j has something like that but I don't think they can specify the
>>>variable replacement values via code) and a mechanism to define the
>>>placeholders in init(conf_file, key => value, key => value);
>>>
>>>Any other ideas? Sounds like a pretty useful feature to me.
>>
>>Initially I wondered why I couldn't do something like this:
>>
>>Log::Log4perl::init('Dump2OWH.conf');
>>my $appender = get_appender('File');
>>$appender->filename('test.log');
>>
>>but after investigating found that get_appender is part of the log4j
>>API which hasn't been implemented, Log::Dispatch::File doesn't support
>>get and set methods on its instance variables, and, more importantly,
>>that the output file is opened as part of the creation of the
>>appender during the init(), so it's then too late to change the file
>>name.
>>
>>Regards,
>>Duncan Cameron
>>
>>
>>
>>
>>
>>
>>
>>-------------------------------------------------------
>>This sf.net email is sponsored by:ThinkGeek
>>Welcome to geek heaven.
>>http://thinkgeek.com/sf
>>_______________________________________________
>>log4perl-devel mailing list
>>log...@li...
>>https://lists.sourceforge.net/lists/listinfo/log4perl-devel
>
>
--
Happy Trails . . .
Kevin M. Goess
(and Anne and Frank)
904 Carmel Ave.
Albany, CA 94706
(510) 525-5217
|