http://www.perlmonks.org?node_id=450196


in reply to Custom cspec's in Net::Log4perl

Hi

I'm not too sure about this, since I'm not famaliar with Log4Perl ...

isn't $session in your main package? If so, try

log4perl.PatternLayout.cspec.s = sub {return $::session->id}

Replies are listed 'Best First'.
Re^2: Custom cspec's in Net::Log4perl
by jpfarmer (Pilgrim) on Apr 21, 2005 at 21:49 UTC

    I tried that, and it silenced strict's complaint, but it now gives Can't call method "id" on an undefined value at (eval 36) line 1.. So, apparently the value still isn't avalible to the module.

      Hi,

      Sorry, I didn't read your code carefully enough.

      # Check to see if we have a session. If so, load it's information. # If not, we need to create one and then cookie the user. #### JJ comment #### 'my' makes this lexically scoped #### change to 'our' or $::session to be visible #### in other scopes my $session = new CGI::Session("driver:DB_File", $cgi, {Directory=>'/u +sr/local/apache/htdocs/addressbook'}); # Init the logger Log::Log4perl->init("/usr/local/apache/htdocs/addressbook/log4perl.con +f");
      you need to change my $session to something package scoped, like $::session. Then, it's somewhat of a global variable, so be carefull.

      - j

        Excellent! It works now!

        Thank you very much for your help!