http://qs1969.pair.com?node_id=1125804


in reply to Re^2: Change email config for Log::Dispatch::Email::MailSender
in thread Change email config for Log::Dispatch::Email::MailSender

Have you tried reading the Log::Log4perl documentation? The qw operator is documented in perlop: qw. Importing from modules is documented in perlfunc: use.

Hi afoken, I am not the OP, I was trying to engage the OP and inspire a lightbulb moment ... works better when the OP is around :)

Anyway, changing configuration at runtime is not how you're supposed to work it :)

use Log::Log4perl qw/ get_logger /; ... get_logger("Winmail")->info("yay!"); ... get_logger("Failmail")->info("boo!"); ... get_logger("Bobmail")->info("get to work!");
  • Comment on Re^3: Change email config for Log::Dispatch::Email::MailSender ( log4perl email dynamic subject)
  • Download Code

Replies are listed 'Best First'.
Re^4: Change email config for Log::Dispatch::Email::MailSender ( log4perl email dynamic subject)
by tonytronics (Initiate) on May 06, 2015 at 20:32 UTC

    I would like to change the email subject before the program exists now I was able to do it by replacing the Email appender with a new one in the script as shown in the method below. I want to know if its possible to get the existing appender and modify its properties instead of replacing it.

    sub update_email_logger { my $subject = shift; my $logger = Log::Log4perl::get_logger(); my $pattern = Log::Log4perl::Layout::PatternLayout->new( "%d{yyyy +-MM-dd HH:mm:ss} %p: %m<br/>" ); my $appender = Log::Log4perl::Appender->new( "Log::Dispatch::Email::MailSender", name => "Email", to => $EMAIL_NOTIFICATION, subject => $subject, from => 'myemail@gmail.com', smtp => $SMTP_SERVER, Threshold => 'DEBUG', ); $appender->layout( $pattern ); $logger->add_appender( $appender ); }

      I would like to change the email subject before the program exists now I was able to do it by replacing the Email appender with a new one in the script as shown in the method below. I want to know if its possible to get the existing appender and modify its properties instead of replacing it.

      Sure it is possible -- the docs/faq even explain how -- but this is not the solution you're looking for :)

      If you want different emails to get info messages based on something in your code, use a dedicated category/logger like you're supposed want to