gpt4 book ai didi

java - 记录器创建太多文件

转载 作者:行者123 更新时间:2023-11-30 03:48:27 25 4
gpt4 key购买 nike

我正在编写独立的java工具。下面是我的记录器实现代码。我在下面的代码中遇到一个问题。每当我调用 ZRToolLogger.getLogger 时,就会创建一个新文件。我需要在单个文件中维护日志信息。如何解决这个问题?

我不知道下面的实现是正确还是错误。如果错误,请告诉我另一种解决方法。

import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.LogManager;
import java.util.logging.LogRecord;
import java.util.logging.Logger;

public class ZRToolLogger{
public static Logger getInfoLogger(String loggerName)
{
LogManager logManager = LogManager.getLogManager();
Logger logger = Logger.getLogger(loggerName);
logger.setUseParentHandlers(false);
FileHandler fh = null;
try{
fh = new FileHandler(ZRToolConstants.CTX_PATH+"/logs/log.%u.txt", true);
}
catch(IOException e)
{
}

logManager.addLogger(logger);
ZRToolLogFormatter formatterTxt = new ZRToolLogFormatter();

if(fh != null)
{
fh.setFormatter(formatterTxt);
}
logger.addHandler(fh);

return logger;
}

private static class ZRToolLogFormatter extends Formatter
{
public ZRToolLogFormatter()
{
super();
}

@Override
public String format(LogRecord log)
{
return log.getLevel() + ":" + formatMessage(log)+"\n";
}
}
}

谢谢。

最佳答案

你必须使 fh 静态。

public class ZRToolLogger{

public static FileHandler fh;
public static Logger getInfoLogger(String loggerName)
{
LogManager logManager = LogManager.getLogManager();
Logger logger = Logger.getLogger(loggerName);
logger.setUseParentHandlers(false);

if (ZRToolLogger.fh = null)
{
try{
ZRToolLogger.fh = new FileHandler(ZRToolConstants.CTX_PATH+"/logs/log.%u.txt", true);
}
catch(IOException e)
{
}
}
logManager.addLogger(logger);
ZRToolLogFormatter formatterTxt = new ZRToolLogFormatter();

if(ZRToolLogger.fh != null)
{
ZRToolLogger.fh.setFormatter(formatterTxt);
}
logger.addHandler(fh);

return logger;
}

private static class ZRToolLogFormatter extends Formatter
{
public ZRToolLogFormatter()
{
super();
}

@Override
public String format(LogRecord log)
{
return log.getLevel() + ":" + formatMessage(log)+"\n";
}
}

}

关于java - 记录器创建太多文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25012446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com