⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 log.pm

📁 mysql+ha. 实现高可用性 http://code.google.com/p/mysql-master-master/
💻 PM
字号:
use Fcntl ':flock'; # import LOCK_* constantsmy $log_levels = {};$log_levels->{'trap'} = 0;$log_levels->{'error'} = 10;$log_levels->{'notice'} = 20;$log_levels->{'warn'} = 30;$log_levels->{'debug'} = 100;#-----------------------------------------------------------------sub LogDebug($) {    PrintLog(@_, 'debug');}#-----------------------------------------------------------------sub LogNotice($) {    PrintLog(@_, 'notice');}#-----------------------------------------------------------------sub LogWarn($) {    PrintLog(@_, 'warn');}#-----------------------------------------------------------------sub LogError($) {    PrintLog(@_, 'error');}#-----------------------------------------------------------------sub LogTrap($) {    PrintLog(@_, 'trap');}#-----------------------------------------------------------------sub SendLogEmailNotice($$) {    my $msg = shift;    my $email = shift;        my $now = strftime("%Y-%m-%d %H:%M:%S", localtime);        my $sendmail = "/usr/sbin/sendmail -t";    my $res = open(SENDMAIL, "|$sendmail");    unless ($res) {         LogError("Error: Cannot open $sendmail: $!");	    return 1;    }    print SENDMAIL "From: mmm_mon\@kovyrin.net\n";    print SENDMAIL "Subject: [$now] MMM Notification\n";    print SENDMAIL "To: $email\n\n";    print SENDMAIL "$now: $msg\n";    close(SENDMAIL);}#-----------------------------------------------------------------sub PrintLog {    my $msg = shift;    my $log_level = shift;    $log_level = "debug" unless ($log_level);        my $now = strftime("%Y-%m-%d %H:%M:%S", localtime);    my $logs = $config->{'log'};    foreach my $log_name (keys(%$logs)) {        my $log = $logs->{$log_name};        next if ($log_levels->{$log_level} > $log_levels->{$log->{level}});                open(LOG, ">>". $log->{file});        flock(LOG, LOCK_EX);        seek(LOG, 0, 2);            print(LOG "[$now]: $$: $msg\n");        flock(LOG, LOCK_UN);                if ($log->{email}) {            SendLogEmailNotice($msg, $log->{email});        }    }        unless ($config->{debug} =~ /^(off|no|0)$/i) {        print("[$now]: $msg\n");    }}1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -