Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Windows中所需文件的非管理员权限的Log4j属性_Java_Jakarta Ee_Configuration_Permissions_Log4j - Fatal编程技术网

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

Java Windows中所需文件的非管理员权限的Log4j属性,java,jakarta-ee,configuration,permissions,log4j,Java,Jakarta Ee,Configuration,Permissions,Log4j,我使用log4j进行日志记录,我有两个log4j.properties文件,一个用于记录到stdout(用于开发),另一个用于记录到文件(用于生产) 在这种情况下,用户将在没有管理员权限的情况下在Windows 7 x86上运行该程序,因此我猜日志记录操作无法完成,因为我的日志文件位于安装文件夹中(C:\program Files\…) 我想到的第一个解决方案是将日志文件放在用户文件夹中(C:\user\%Name%)。我知道我可以通过以下方式以编程方式获取该文件夹: System.getPro

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

在这种情况下,用户将在没有管理员权限的情况下在Windows 7 x86上运行该程序,因此我猜日志记录操作无法完成,因为我的日志文件位于安装文件夹中(
C:\program Files\…

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

System.getProperty("user.home")
但是如何在Java
.properties
文件中获取该属性,在本例中是
log4j.properties


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

为什么不将日志记录位置默认为可以访问的位置,如果用户愿意,允许用户将其放在其他地方?

为什么不将日志记录位置默认为您知道可以访问的位置,如果用户愿意,允许用户将其放在其他地方?

再通过谷歌搜索,我找到了答案:


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

通过谷歌搜索,我找到了答案:


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

这样做很简单,日志文件不是为用户准备的,它是为崩溃/错误报告准备的,因此用户不需要知道日志文件是否存在(除非他想看到)。这样做很简单,日志文件不是为用户准备的,它是为崩溃/错误报告准备的,因此用户不需要知道日志文件是否存在(除非他想看到)