繁体   English   中英

Java.util.logging 只用 FileHandler 记录一行信息

[英]Java.util.logging only a row information with FileHandler

我正在使用 java.util.logging.FileHandler 并且每次都尝试在文件上覆盖日志信息。 我将 FileHandler costructor 设置为 false,但继续 append 日志信息。 我在 web 上环顾四周,但没有找到解决方案。

下面是我的简单代码:

public class FileLog
{
    public static void main(String[] args)
        throws SecurityException, IOException
    {
        Logger logger = Logger.getLogger(FileLog.class.getName());
        logger.setUseParentHandlers(false);

        FileHandler fh = null;
        boolean noException = false;
        String code = null;

        MyFormatter formatter = new MyFormatter();
        fh = new FileHandler("C:/temp/MyLogFile.log", false);

        logger.addHandler(fh);

        fh.setFormatter(formatter); 

        while (!noException) {
            try {
                if (code == null)
                    throw new NullPointerException("Error code!!");
                else
                    noException = true;
            } catch (NullPointerException e) {
                logger.warning(e.getMessage());
            }
        }

        System.out.println("code "+code);
    }
}

public class MyFormatter extends Formatter
{
    // Create a DateFormat to format the logger timestamp.
    private static final DateFormat df = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS");

    @Override
    public String format(LogRecord record)
    {
        StringBuilder builder = new StringBuilder(1000);
        builder.append(df.format(new Date(record.getMillis()))).append(" - ");
        builder.append("[").append(record.getSourceClassName()).append(".");
        builder.append(record.getSourceMethodName()).append("] - ");
        builder.append("[").append(record.getLevel()).append("] - ");
        builder.append(formatMessage(record));
        builder.append(System.getProperty("line.separator"));
        // builder.append("\n");
        return builder.toString();
    }
}

这是 output

05/11/2019 12:16:13.342 - [FileLog.main] - [WARNING] - Error Code!!
05/11/2019 12:16:27.317 - [FileLog.main] - [WARNING] - Error Code!!

它应该只写最后一个异常。 我哪里错了?

代码检查变量

代码

为 null。

它是否在任何地方设置为非 Null 值?

暂无
暂无

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

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