【发布时间】:2017-08-20 19:35:16
【问题描述】:
我收到以下错误消息(使用 Perl 5):
Tools.pm: Filehandle STDOUT reopened as FH only for input at /usr/local/lib/perl5/site_perl/mach/5.20/Template/Provider.pm line 967.
我理解它的原因:是 STDOUT 被关闭,后来同一个 FD 被用于与 STDOUT 无关的东西。
代码做正确的事。唯一的问题是不应记录此错误消息。
如何停止将此错误消息打印到我们的日志文件中?
【问题讨论】:
-
这些是自定义模块吗?是什么决定了是否应该记录错误?
-
这些是我们与标准模板工具包一起使用的自定义模块。根据我老板的要求,不应该记录错误
-
好的。我的意思是,什么代码记录了错误?必须有一些东西可以记录错误。是在模板工具包(我不使用它)中设置的,还是由您的模块设置的? (一种方法是使用
__WARN__钩子,但希望有更清洁的方法) -
@zdim 该错误由 Template Toolkit 发行版中的一个模块记录,该模块在我们的一个自定义模块中打开一个位于
close(STDOUT);之后的文件。是的,错误是由模板工具包记录的,而不是由我们的自定义模块记录的。我的问题是如何使模板工具包不记录错误 -
您不应该关闭 STDOUT。将其重新打开到 /dev/null