0

我在 RT 中创建了一个动作模块。我想将 RT Logger 输出到文本文件中。我已经配置了 RT_SiteConfig.pm:

Set($LogToSyslog    , 'info');
Set($LogToScreen    , 'info');
Set($LogToFile , 'debug');
Set($LogToFile, 'info');
Set($LogToFile, 'warning');
Set($LogToFile, 'error');
Set($LogDir, '/tmp');
Set($LogToFileNamed , "rt.log");

我创建了动作模块:

    package RT::Action::SetLoggingInfo;

    use strict;
    use warnings;
    use base 'RT::Action';

    sub Prepare {
        my $self = shift;

        $RT::Logger->info('Logging info');
        $RT::Logger->info('Logging dump info');

        return 1; # True if Commit should run, false if not
    }

    sub Commit {
        my $self = shift;

       

        return 1; 
    }

    1; 

我想要的只是将 RT::Logger 中的字符串输出到 /tmp 中的日志文件 (rt.log)。但它不起作用,每当我尝试在 web cli 中创建对象时,rt.log 文件中都没有任何日志。我在 rt-test 服务器中进行测试,而不是在生产中。我很可能会有这样的结果。

你能帮我如何实现这一目标吗?非常感谢。

4

1 回答 1

1

恕我直言,您的配置文件中有太多指令$LogToFile。这种类型应该只有一个,如果没有,最后一个通吃。因此,您已设置记录errors但您的模块日志info。请查阅文档以了解日志级别的工作方式。如果将日志级别设置为错误,则日志记录过程将忽略所有调试、信息、通知和警告事件。

于 2021-06-23T08:48:32.287 回答