首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用logger对象获取appender文件名?

如何使用logger对象获取appender文件名?
EN

Stack Overflow用户
提问于 2018-07-11 08:14:52
回答 1查看 328关注 0票数 1

我想要使用logger对象获得appender文件名。

代码语言:javascript
复制
my $log_conf = {
   'log4perl.rootLogger'             => "DEBUG, LOG1, SCREEN",
   'log4perl.appender.SCREEN'        => "Log::Log4perl::Appender::Screen",
   'log4perl.appender.SCREEN.stderr' => "0",
   'log4perl.appender.SCREEN.layout' => "Log::Log4perl::Layout::PatternLayout",
   'log4perl.appender.SCREEN.layout.ConversionPattern' =>
     "autom:%d{yyyy_MMM_d H:m:s}_" . get_ip_address() . "_%C::: %m %n",
   'log4perl.appender.LOG1'          => "Log::Log4perl::Appender::File",
   'log4perl.appender.LOG1.filename' => file_path($file_name, $path),
   #'log4perl.appender.LOG1.mode'                        => "append",
   'log4perl.appender.LOG1.layout' => "Log::Log4perl::Layout::PatternLayout",
   'log4perl.appender.LOG1.layout.ConversionPattern' =>
     "autom:%d{yyyy_MMM_d H:m:s}_%C::: %m %n"
};
Log::Log4perl->init($log_conf);
my $logger = Log::Log4perl->get_logger($file_name);

我浏览了文档,它说我可以使用appender_by_name()类方法访问附加程序。

我试图使用命令$logger->appender_by_name()访问它,但它返回了以下错误:

无法通过包"Log::Log4perl::Logger“找到对象方法"appender_by_name”

代码语言:javascript
复制
Perl Version: 5.22
Log::Log4perl Version: 1.48

下面是我的记录器对象的转储:

代码语言:javascript
复制
$VAR1 = bless( {
                 'TRACE' => sub { "DUMMY" },
                 'DEBUG' => sub { "DUMMY" },
                 'FATAL' => $VAR1->{'DEBUG'},
                 'additivity' => 1,
                 'level' => undef,
                 'layout' => undef,
                 'appender_names' => [],
                 'OFF' => $VAR1->{'DEBUG'},
                 'is_WARN' => sub { "DUMMY" },
                 'is_TRACE' => sub { "DUMMY" },
                 'is_OFF' => sub { "DUMMY" },
                 'is_DEBUG' => sub { "DUMMY" },
                 'ERROR' => $VAR1->{'DEBUG'},
                 'is_INFO' => sub { "DUMMY" },
                 'is_ERROR' => sub { "DUMMY" },
                 'is_ALL' => sub { "DUMMY" },
                 'WARN' => $VAR1->{'DEBUG'},
                 'INFO' => $VAR1->{'DEBUG'},
                 'num_appenders' => 0,
                 'is_FATAL' => sub { "DUMMY" },
                 'category' => 'autom_controller.log',
                 'ALL' => $VAR1->{'TRACE'}
               }, 'Log::Log4perl::Logger' );
EN

回答 1

Stack Overflow用户

发布于 2018-07-11 09:11:54

appender_by_name()Log::Log4perl类中的方法。所以你需要把它用作:

代码语言:javascript
复制
Log::Log4perl->appender_by_name('LOG1')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51280432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档