Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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.util.logging目标_Java_Logging_Java.util.logging - Fatal编程技术网

以编程方式设置java.util.logging目标

以编程方式设置java.util.logging目标,java,logging,java.util.logging,Java,Logging,Java.util.logging,我使用java.util.logging进行日志记录和跟踪。如何在Java应用程序中动态设置日志应该写入的文件 你在说什么 如果是这样,答案是“你不能”。为了更改日志记录到的文件(或更改配置中的任何其他内容),您需要知道您使用的是什么底层日志记录实现,而使用JULog的整个要点(非常有争议,顺便说一句,除非您正在开发库)是与日志记录实现没有任何关联 如果在运行时选择一个文件是一项要求,那么最好使用一个具体的实现,比如java.util.logging.FileHandler,它可以为您完成任务。

我使用java.util.logging进行日志记录和跟踪。如何在Java应用程序中动态设置日志应该写入的文件

你在说什么

如果是这样,答案是“你不能”。为了更改日志记录到的文件(或更改配置中的任何其他内容),您需要知道您使用的是什么底层日志记录实现,而使用JULog的整个要点(非常有争议,顺便说一句,除非您正在开发库)是与日志记录实现没有任何关联


如果在运行时选择一个文件是一项要求,那么最好使用一个具体的实现,比如
java.util.logging.FileHandler
,它可以为您完成任务。以下代码段显示了一个简单的示例,说明如何以编程方式设置日志记录目标:

    Logger logger = Logger.getLogger("my.logger.name");
    try {
        FileHandler handler = new FileHandler("application.log", true);
        logger.addHandler(handler);
    } catch (IOException e) {
        throw new IllegalStateException("Could not add file handler.", e);
    }
    logger.info("Hello Logger!");

(注意:这个答案是针对原始的未编辑问题“设置JUL日志”/“我正在使用JUL日志…”而不是Log4j,这可以通过使用Logback实现(使用slf4j将所有日志重定向到Logback);请参阅(但这仍然是一个坏主意;有各种各样的logback附加程序/策略控制输出文件,允许日志配置保留在它所属的xml配置中)