【问题标题】:How to use a logging.properties file from disk as a java.util.logging.properties file如何将磁盘中的 logging.properties 文件用作 java.util.logging.properties 文件
【发布时间】:2013-07-11 19:23:45
【问题描述】:

我有一个基本的 cmd 程序,它调用一个 jar,该 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 文件(最好来自我拥有 cmd 程序的同一个文件夹)。如何强制此安装程序使用我的 logging.properties 文件而不是资源文件夹中的默认文件?有什么办法可以强制这样做吗?

【问题讨论】:

    标签: java java.util.logging


    【解决方案1】:

    你可以试试这个:

    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

    【讨论】:

    • 感谢您的意见。但这里的问题是我仍然需要为此修改 Install 类。我希望能够通过命令行指定属性文件,这可能吗?
    • 不客气。在这种情况下,您应该查看this。你需要像java -jar -Djava.util.logging.config.file="./yourLogProperties.properties" 这样的东西我没有做任何测试,所以我不能确定它是否会起作用。如果有,请尝试告诉我们!
    • 谢谢。这似乎可行。出于某种原因,我认为我应该强制 java.util.logging 文件成为系统属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多