简体   繁体   English

为什么我的日志未写入文件?

[英]Why my logs are not written to the file?

I'm trying write my logs in file, but file is empty and logs print in console. 我正在尝试在文件中写入日志,但是文件为空,并且日志在控制台中打印。 File is placed in resource folder project. 文件放置在resource文件夹项目中。 Why is problem? 为什么会出问题?

import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;

private Logger logger = Logger.getLogger(MyClass.class.getName());
private FileHandler fileHandler;

public String book(){
        try {
            fileHandler = new FileHandler("super.txt", 100000, 1, true);
            SimpleFormatter formatter = new SimpleFormatter();
            fileHandler.setFormatter(formatter);
            logger.addHandler(fileHandler);
            logger.setLevel(Level.INFO);
            logger.log(Level.INFO, "INFO");
        } catch (IOException e) {
            e.printStackTrace();
        }
        logger.log(Level.WARNING, "WARN");
        return "log is save or not )";
    }

Have you tried with "resource/super.txt" instead of "super.txt" ? 您是否尝试过使用“ resource / super.txt”而不是“ super.txt”? Also, don't forget to close your fileHandler when you have finished with it. 另外,不要忘记在完成处理后关闭它的fileHandler。

I tried your code and it works. 我尝试了您的代码,它可以工作。 It creates a log file in the "current directory" that is the project root directory. 它在项目目录根目录“当前目录”中创建一个日志文件。 You can pass a calculated absolute path as file name to get it logging where you want. 您可以将计算出的绝对路径作为文件名传递,以使其记录在所需的位置。

Logging to console can be disabled by adding this : 可以通过添加以下命令禁用登录控制台:

logger.setUseParentHandlers(false);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM