我有一个配置INI文件来存储我的脚本运行所需的所有配置。我有一个Logger.PM,它使用Log4Perl和ConfigReader.PM,它读取INI文件并将值存储在全局变量中。我的Start.PL是我从Logger和configreader调用方法的入口点。
我目前的工作
我想要什么
我可以通过以下
来做到这一点我可以面对的是
我想记录脚本的每一步(在发生故障时记录/调试目的。)
我可以使用print
,但这会写入控制台并捕获我需要使用>> log.txt。然后我将被迫为我的应用程序维护2个日志,这不是我想要的
对于这种情况,任何人都有一个很好的解决方案吗?
答案 0 :(得分:0)
您可以使用Getopt::Long在命令行中传递INI文件路径,并使用命令行开关来传递:
Start.pl --ini=/path/to/INI_file
这是一个代码示例,用于显示Start.pl中需要进行哪些更改,以便具有开关:
#!/usr/bin/env perl
use v5.12;
use strict;
use Getopt::Long;
# That little tiny 's' after 'ini=' is for string
GetOptions ( 'ini=s' => \my $ini_file );
say $ini_file;
完成此更改后,您可以读取INI文件中的所有选项,包括日志文件夹路径(您是否已使用模块管理Config::IniFiles等INI文件?)。
关于print
的问题还有一些问题尚不清楚:虽然我的一位主人说用一对方括号打印是世界上最好的调试器,但为什么在你拥有时使用print
设置Log::Log4perl
?
当你说在ConfigReader中无法使用Logger.PL时,你是指日志对象吗?