Windows 中需要非管理员权限的文件的 Log4j 属性

发布于 2024-12-25 21:39:27 字数 536 浏览 0 评论 0原文

我使用 log4j 进行日志记录,并且有两个 log4j.properties 文件,一个用于记录到 stdout(用于开发),另一个用于记录到文件(生产)。

在这种情况下,用户将在没有管理员权限的Windows 7 x86上运行程序,所以我猜测日志操作无法完成,因为我的日志文件位于安装文件夹(C:\Program Files\. ..)。

我想到的第一个解决方案是将日志文件放在用户文件夹中(C:\User\%Name%)。我知道我可以通过以下方式以编程方式获取该文件夹:

System.getProperty("user.home")

但是如何在 Java .properties 文件(在本例中是 log4j.properties)中获取该属性?

然后我考虑使用一个 templatelog4j.properties ,其中标记一个区域以替换用户文件夹路径,但我想避免这种情况。

I'm using log4j for my logging and I have two log4j.properties files, one for logging to stdout (to develop) and another to log to a file (production).

In this case, the user will run the program on Windows 7 x86 without administrator rights, so I guess that the logging operation can't be done because my log file is in the installation folder (C:\Program Files\...).

The first solution that I thought of was to have the log file in the user folder (C:\User\%Name%). I know that I can get that folder programmatically with:

System.getProperty("user.home")

but how can I get that property in a Java .properties file, in this case log4j.properties?

Then I thought about having a templatelog4j.properties with an area marked to replace with the user folder path, but I want to avoid that one.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一口甜 2025-01-01 21:39:27

为什么不将日志记录位置默认为您知道可以访问的位置,并允许用户根据需要将其放置在其他位置?

Why don't you default the logging location to a place that you know will be accessible, and allow the user to put it somewhere else if they wish?

Bonjour°[大白 2025-01-01 21:39:27

经过更多谷歌搜索后,我找到了答案:

您可以使用 ${NAME} 使用 .properties 文件中的每个 VM 属性(至少 log4j.properties这是一个示例

After some more googling, I found the answer:

You can use every VM property inside a .properties file (at least log4j.properties) using ${NAME}. Here's an example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文