java - 如何使用磁盘中的logging.properties文件作为java.util.logging.properties文件

标签 java java.util.logging

我有一个基本的cmd程序,它调用一个jar,它有一个带有main方法的Install类。 Install 类使用其资源文件夹中的 java.util.logging.config.file。

private static void setupLogging() {
    if (System.getProperty("java.util.logging.config.file") == null) {
        final InputStream inputStream = Install.class.getResourceAsStream("/logging.properties");
        try {
            LogManager.getLogManager().readConfiguration(inputStream);
        } catch (final IOException e) {
            Logger.getAnonymousLogger().severe("Could not load default logging.properties file");
            Logger.getAnonymousLogger().severe(e.getMessage());
        }
    }
}

此安装程序属于不同的项目,我不应该更改它。但我想使用磁盘中的单独的logging.properties文件(最好来 self 拥有cmd程序的同一文件夹)。如何强制此安装程序使用我的logging.properties 文件而不是资源文件夹中的默认文件?有什么办法可以强制执行此操作吗?

最佳答案

你可以试试这个:

String yourFilePath = "./yourLogProperties.properties";
LogManager.getLogManager().readConfiguration(new FileInputStream(yourFilePath);

将从存储在执行应用程序的同一文件夹中的文件加载属性。

更新:

我正在搜索如何通过命令行传递属性,并且有一个很好的解释 here 。因此,根据您的情况,您需要这样的东西:

java -jar -Djava.util.logging.config.file="./yourLogProperties.properties" YourApp.jar

您还可以通过简单的测试来测试它是否有效:

public class Tests {    
    public static void main(String[] args) {
        System.out.println(System.getProperty("java.util.logging.config.file"));
    }    
}

从命令行运行它,您应该得到答案./yourLogProperties.properties

关于java - 如何使用磁盘中的logging.properties文件作为java.util.logging.properties文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17601690/

相关文章:

java - 在不损失精度的情况下将 long 或 BigInteger 乘以 double

java - 具有自动文本定位功能的 Graphics2D 生成图像

java - 在 Swing 应用程序中使用 java.util.logging 包

Javalogging.properties文件仅打印特定的记录器

java.util.logging.Logger : increment of file-extension after a "timeout"

java - 错误消息 : operator < cannot be applied to boolean, 整数

java 聊天应用程序无法在其他机器上运行

java - 自定义 Transformer 中的 Spark (Java) transformSchema()

tomcat - 在 Java EE/Spring 容器中多次使用 jul-to-slf4j 有何影响?

使用带有追加的 getHead() 的 Java 日志记录