有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVAutil。日志记录:当从Windows comand prompt运行时,处理程序的输出到哪里?

刚刚开始学习这个日志模块

当我在Eclipse中运行它时,控制台的输出会转到我期望的地方:控制台处理程序到控制台,文件处理程序到文件

当我在命令提示符下运行时,我不知道控制台输出或文件输出要去哪里

我是这样配置它的:

    Handler consoleHandler = null;
    Handler fileHandler = null;
    try {
        logger.setUseParentHandlers(false);

        // Creating consoleHandler and fileHandler
        consoleHandler = new DualConsoleHandler();

        // 1000 bytes max, 5 files max, append mode = true
        fileHandler = new FileHandler("./output/logging/log%g.xml", 10000, 5, true);

        // Assigning handlers to logger object
        logger.addHandler(consoleHandler);
        logger.addHandler(fileHandler);

        // Setting levels to handlers and logger
        consoleHandler.setLevel(Level.ALL);
        fileHandler.setLevel(Level.ALL);

        logger.setLevel(Level.ALL);
    } catch (IOException exception) {
        logger.log(Level.SEVERE, "Error occur in FileHandler.", exception);
    }

DualConsoleHandler看起来像这样(在另一个SO问题中发现),其思想是将信息或更低的值打印到stdout,但将警告或更高的值打印到stderr:

public class DualConsoleHandler extends StreamHandler {

    private final ConsoleHandler stderrHandler = new ConsoleHandler();

    public DualConsoleHandler() {
        super(System.out, new SimpleFormatter());
    }

    @Override
    public void publish(LogRecord record) {
        if (record.getLevel().intValue() <= Level.INFO.intValue()) {
            super.publish(record);
            super.flush();
        } else {
            stderrHandler.publish(record);
            stderrHandler.flush();
        }
    }
}

共 (1) 个答案

  1. # 1 楼答案

    When I run from the command prompt I have no idea where the console output or the file output is going.

    控制台输出发送到控制台

    文件输出将转到您指定的路径。i、 e../output/logging/log%g.xml

    在运行它的目录下查找output/logging目录