gpt4 book ai didi

Java Logger FileHandler 命名约定

转载 作者:行者123 更新时间:2023-12-01 12:40:34 27 4
gpt4 key购买 nike

我部署了一个servlet。我对生成的日志文件有点困惑。特别是我不知道该看哪一个。

使用相同的数据生成了多个。

我正在使用以下代码来初始化我的文件处理程序。

Logger logger = Logger.getLogger(Global.TAG);
String path = realPath + "myappname" + ".%g.log";
FileHandler fh = new FileHandler(path, 10240000, 1000, true);
logger.addHandler(fh);
logger.setLevel(Level.ALL);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
logInfo("Logger Configured!");

请注意,当文件旋转时,我有 %g

生成的文件是这样的。

myappname.0.log
myappname.0.log.1
myappname.0.log.2
myappname.0.log.3
myappname.0.log.4
myappname.0.log.5
myappname.0.log.6
myappname.1.log
myappname.1.log.2
myappname.1.log.4
myappname.1.log.5
myappname.2.log
myappname.2.log.1
myappname.2.log.2
myappname.2.log.3
myappname.2.log.4
myappname.2.log.5
myappname.2.log.6
myappname.3.log
myappname.3.log.1
myappname.3.log.3
myappname.3.log.6

在生成日志的最后 2-3 周内,Servlet 被多次取消部署和重新部署。

我注意到具有相同名称的日志(除了“.log”部分之后的最后一位)具有相同的日志记录语句。有些文件较多,有些较少。

什么给了?我应该如何阅读这篇文章?

最佳答案

您在部署时以编程方式打开 FileHandler,因此您可以在取消部署时从记录器中关闭并删除 FileHandler。

根据 FileHandler文档:

Normally the "%u" unique field is set to 0. However, if the FileHandler tries to open the filename and finds the file is currently in use by another process it will increment the unique number field and try again. This will be repeated until FileHandler finds a file name that is not currently in use. If there is a conflict and no "%u" field has been specified, it will be added at the end of the filename after a dot. (This will be after any automatically added generation number.)

您必须通过logging.properties设置FileHandler,以便它只安装一次,或者您将设置和拆卸代码移至ServletContextListener

关于Java Logger FileHandler 命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25143666/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com