The use case is the situation where I don't know what the config file with
the logging configuration is yet. So basically, the program does the
following:

1. Initializes the logging system as soon as it starts, before anything
else, with a basic config that will log to stdout.
2. Process the command line parameters, does some other configuration work,
which includes figuring out where the correct logging configuration file
is. I need a valid logging system because there may be cases in this phase
that log messages get generated, say for missing information or a
filesystem permission issue, etc.
3. Calls init() with the new config file, to setup the real logging that
should be done for the rest of the application.

I cannot use the init_and_watch() method, because I don't have a config
file to use yet. Not to mention, the init_and_watch has some performance
issues.

So basically the question I have is that I need to reset and re-configure
the logging system at some point after the initial logging setup. The docs
for the init() and init_once() methods suggest that calling init() a second
time will "reset" and "overwrite" the current configuration, which in this
case I want.

I hope that helps.

On Sat, Mar 16, 2013 at 4:08 AM, Lee <lee...@gmail.com> wrote:

> I don't know the L4p source, but I vaguely recall that someone, years ago,
> possibly in the Log4perl docs, said that the init method was only intended
> to implement initialisation, not re-initialisation.
>
> I may be wrong — I can't imagine ever calling init() twice, though I did
> occasionally do it when I first started using the system, there was some
> now-forgotten issue that stopped the practice.
>
> Why are you calling init twice?
>
> If it is just in case the config has chanced, there is an init-and-watch
> method.
>
> If it is to combine configurations, the Hash::Merge module can help, and
> there is a working example somewhere in the archives of this group.
>
> HTH
>
>
> On 15/03/2013 21:54, Marc Zampetti wrote:
>
>> I have a program that configures a basic Log4perl config so that I have
>> some sane logging until I'm able to read in the config file with the
>> final configuration. I'm getting an error when calling
>> Log::Log4perl->init() the second time that I cannot seem to track down.
>>
>>   From the reading of the docs, this is a valid use case. Its a pretty
>> basic perl script, not using fork() or threads or anything, and running
>> from the commandline, not mod_perl or something like that.
>>
>> The error I get is:
>>
>> Can't call method "log" on an undefined value at
>> /usr/lib/perl5/vendor_perl/5.**8.8/Log/Log4perl/Appender.pm line 189.
>>
>> This is generated when I do the second Log::Log4perl->init(filename)
>> call. The first call to init passes in a string with the basic
>> configuration.
>>
>> Anyone have any ideas what the issue might be?
>>
>> I'm running Log4perl-1.40, using Red Hat 5 64-bit.
>>
>> ------------------------------**------------------------------**
>> ------------------
>> Everyone hates slow websites. So do we.
>> Make your web apps faster with AppDynamics
>> Download AppDynamics Lite for free today:
>> http://p.sf.net/sfu/appdyn_**d2d_mar <http://p.sf.net/sfu/appdyn_d2d_mar>
>> ______________________________**_________________
>> log4perl-devel mailing list
>> log4perl-devel@lists.**sourceforge.net<log4perl-devel@lists.sourceforge.net>
>> https://lists.sourceforge.net/**lists/listinfo/log4perl-devel<https://lists.sourceforge.net/lists/listinfo/log4perl-devel>
>>
>>
>
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
log4perl-devel mailing list
log4perl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/log4perl-devel

Reply via email to