如果说die / warn在我自己的模块中,那么想要死并警告记录到文件日志(在生产模式下)。如果在./lib/main.pm内发生死/警告,则工作正常,但如果它们出现在MyModule中则不行,在这种情况下不会发生logginc。有什么想法吗?
我正在使用的模式是:
./ LIB / main.pm:
package main;
use Dancer ':syntax';
use MyModule;
...
warn 'this will get logged. hurrah!';
my $result = &MyModule::MyMethod();
./ MyModule.pm:
package MyModule;
...
sub MyMethod {
warn 'this wont get logged for some reason. any idea why not?';
return 'result';
}
apache配置:
<VirtualHost *:80>
ServerName myapp.com
DocumentRoot /home/myapp/public
SetEnv DANCER_ENVIRONMENT "production"
<Directory />
SetHandler perl-script
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app /home/myapp/bin/app.pl
</Directory>
CustomLog /home/myapp/logs/access.log common
ErrorLog /home/myapp/logs/error.log
</VirtualHost>
和production.yml:
log: "warning"
logger: "file"
log_path: "/home/myapp/logs/"
warnings: 0
show_errors: 0
route_cache: 1
答案 0 :(得分:1)
我很久以前就想到了这一点,我想我会回答自己的问题。
使用'警告',不要警告。
每个模块都需要使用Dancer':syntax';
所以,这将有效:
package MyModule;
use Dancer ':syntax';
...
sub MyMethod {
warning 'this will get logged with good reason. yippee!';
return 'result';
}