On Oct 18, 2012, at 07:58, Antti Linno wrote:

> First of all, I have to apologise. Still no pastebin.

We have to apologize, too.  You're asking questions about code we cannot see.  
This impairs our ability to provide satisfying answers.

> But a general tree would be something like that.
> 
> Main POE module, imported submodule1, imported submodule2. All 3
> modules open the same logger conf and use the same sqlite file to
> append the log. Theoretically the log file could be locked, if all 3
> or even 2 modules try to write at the same time.

No.  As others have said, POE doesn't pre-empt.  Under ordinary circumstances, 
we expect all three modules to call Log::Log4perl sequentially rather than 
concurrently.  We don't expect Log::Log4perl suffer from lock contention.

It's very likely that something extraordinary is happening as a result of code 
we cannot see.  Others have already outlined the most likely reasons for the 
symptoms you described.  I hope you understand that's the best we can do 
without your cooperation.

> What would be the nice and tidy thing to do? Initialize logger in main
> POE module and pass it to submodules?

That's such a good question that Log::Log4perl already answers it:

"Why Log::Log4perl->get_logger and not Log::Log4perl->new? We don't want to 
create a new object every time. Usually in OO-Programming, you create an object 
once and use the reference to it to call its methods. However, this requires 
that you pass around the object to all functions and the last thing we want is 
pollute each and every function/method we're using with a handle to the Logger:

[example omitted]

"Instead, if a function/method wants a reference to the logger, it just calls 
the Logger's static get_logger($category) method to obtain a reference to the 
one and only possible logger object of a certain category. That's called a 
singleton if you're a Gamma fan."

That quote is from 
http://search.cpan.org/~mschilli/Log-Log4perl-1.38/lib/Log/Log4perl.pm#Initialize_via_a_configuration_file

-- 
Rocco Caputo <rcap...@pobox.com>

Reply via email to