I'm starting to use L4p for a sort of large project (few thousand lines so far), and I've run in to a design issue with the singleton nature of l4p. If you've never used this module, the basis is that you do
Log::Log4perl->init("file.conf") which defines various "loggers".
These loggers are basically objects you access later in the script and use them to record log messages. l4p uses singletons however, so there is always just one instance of each logger and you get a reference to this instance via
Log::Log4perl->get_logger("logger_name").
So thats what I do at the moment. Anywhere I need to log something, I call get_logger() and then call my methods, typically without a temporary variable in the style of
Log::Log4perl->get_logger("logger_name")->log("message"). Of course this is a lot of typing, but thats not really an issue. My bigger question was, is this a good design decision? Would it be any better to just define my global logger objects at the top and just use those variables everywhere I need them instead?
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.