【发布时间】:2021-07-02 08:45:31
【问题描述】:
我有一个使用 Perl 脚本运行的 java 应用程序。 在 Perl 中,我已经配置了日志文件属性路径。 每次我运行应用程序时,它都会覆盖日志文件。 我希望每次执行时都有一个具有唯一名称的新文件,并且不会被覆盖或只是一个文件,而是在文件末尾附加日志。
知道为什么,以及如何解决吗?
logconf.properties
handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
.level= WARNING
java.util.logging.FileHandler.pattern= /pipa/log/waach_%u_%g.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.level = INFO
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.append=true
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
com.xyz.foo.level = SEVERE
ci.pipa.tari.level = INFO
.Perl 脚本
use warnings;
use strict;
use POSIX;
my $java = "/usr/bin/java";
my $classpath = "/pipata/java/lib/pipatar.jar";
my $properties = "-Djava.util.logging.config.file=/pipata/java/log/logconfig.properties";
my $mainClass = "ci.pipa.upload.RunPipaFile";
my $command = " $java -cp $classpath $properties $mainClass 2021 2";
print "$command \n";
system ("$command");
【问题讨论】:
-
请注意,
-w和use warnings做的事情几乎相同,因此您只需要其中一个。大多数人选择use warnings。 -
你当前的配置文件是从哪里得到的?
-
来自属性
logconfig.properties文件,如您在.perl文件中所见。 -
考虑在 perl 脚本中应用正则表达式替换配置文件来修改模式属性以强制执行您想要的。从文档来看,似乎不存在标准的配置文件解决方案。
-
我不明白你的建议,你能给我一个简单的例子吗。