Revision 3 (by ahitrov@rambler.ru, 2010/03/24 15:19:32) |
The CORE
|
# ������������ ��� ������� �������� �� crontab
# � ����: /some/script > /some/log
# ���� STDOUT ������������ � ����, �� STDERR ����������� � STDOUT.
# ����� �������, ��� ������ � STDOUT � STDERR ������ �������� � log
# ��� �������. ���������� ����������� ������ ������������ ���������� �������
# ��������� � �����.
# ��� ���� warn � die � ������ runtime ������ �� email ��������� cron.
# �� ���� ����� ����� ������������ print ��� ���� ����������� ���������
# � warn � die ��� ���������, ��������� ������������� � �����������.
package ErrorTee;
use strict;
use warnings 'all';
# buffering off!
select((select(STDERR), $|=1)[0]);
select((select(STDOUT), $|=1)[0]);
# is file-redirected?
if (-p STDOUT || -f STDOUT) {
$SIG{'__DIE__'} = sub {
print STDOUT $_[0] if defined($^S) && $^S==0;
};
$SIG{'__WARN__'} = sub {
print STDOUT $_[0] if defined($^S) && $^S==0;
warn $_[0];
};
}
1;