为什么 java 记录器覆盖日志文件?
why java logger overwrite the log file?
我有一个 java 应用程序,其中 运行 使用 Perl 脚本。
在 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");
根据API,java.util.logging.FileHandler.limit
指定近似的最大写入量(以字节为单位)
到任何一个文件。如果这是零,则没有限制。
(默认为无限制)。
在我的例子中,5000 是不够的,每次我 运行,它都会将剩余的内容添加到一个覆盖原始文件的新文件中。我将限制设置为零,现在它将日志附加到同一文件内容的末尾。
java.util.logging.FileHandler.limit = 0
我有一个 java 应用程序,其中 运行 使用 Perl 脚本。 在 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");
根据API,java.util.logging.FileHandler.limit
指定近似的最大写入量(以字节为单位)
到任何一个文件。如果这是零,则没有限制。
(默认为无限制)。
在我的例子中,5000 是不够的,每次我 运行,它都会将剩余的内容添加到一个覆盖原始文件的新文件中。我将限制设置为零,现在它将日志附加到同一文件内容的末尾。
java.util.logging.FileHandler.limit = 0