java 中的 mylogger class
mylogger class in java
我想写一个文件中出现的异常。我正在使用 mylogger class。问题是每次我 运行 应用程序捕获异常时,其他异常都会从文件中删除。
这是 mylogger class
public class MyLogger {
static private FileHandler fileTxt;
static private SimpleFormatter formatterTxt;
private Logger logger;
public void setup() throws IOException {
logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
logger.setLevel(Level.INFO);
fileTxt = new FileHandler("Logging.txt");
// create a TXT formatter
formatterTxt = new SimpleFormatter();
fileTxt.setFormatter(formatterTxt);
logger.addHandler(fileTxt);
}
public void log(Exception e) {
logger.info("test");
}
public void logClientReporting(String string) {
// TODO Auto-generated method stub
logger.info(string);
}
public void logSocket(String string) {
// TODO Auto-generated method stub
logger.info(string);
}
}
我在主程序中调用设置 class。
下面是我调用日志方法的方式:
catch (Exception e) {
// TODO: handle exception
System.err.println("JSON Exception in getAvailableDesings");
logger.logSocket(e.toString());
}
我认为问题出在用于初始化 FileHandler 的构造函数中。 FileHandler 有多个构造函数,其中一个带有第二个参数,一个名为 append 的布尔值,它应该为 true 以附加新日志而不是覆盖它们。所以应该是:
fileTxt = new FileHandler("Logging.txt", true);
如果可以的话,还有一个快速的建议,使用日志记录库,不要试图重写东西。我推荐 apache log4j2 或 slf4j,它们为您提供了很好的日志记录选项。您可以定义模式、要打印的格式(例如日志开头的日期)、time/file 大小限制、何时再次翻转文件以及许多其他选项。
我想写一个文件中出现的异常。我正在使用 mylogger class。问题是每次我 运行 应用程序捕获异常时,其他异常都会从文件中删除。
这是 mylogger class
public class MyLogger {
static private FileHandler fileTxt;
static private SimpleFormatter formatterTxt;
private Logger logger;
public void setup() throws IOException {
logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
logger.setLevel(Level.INFO);
fileTxt = new FileHandler("Logging.txt");
// create a TXT formatter
formatterTxt = new SimpleFormatter();
fileTxt.setFormatter(formatterTxt);
logger.addHandler(fileTxt);
}
public void log(Exception e) {
logger.info("test");
}
public void logClientReporting(String string) {
// TODO Auto-generated method stub
logger.info(string);
}
public void logSocket(String string) {
// TODO Auto-generated method stub
logger.info(string);
}
}
我在主程序中调用设置 class。
下面是我调用日志方法的方式:
catch (Exception e) {
// TODO: handle exception
System.err.println("JSON Exception in getAvailableDesings");
logger.logSocket(e.toString());
}
我认为问题出在用于初始化 FileHandler 的构造函数中。 FileHandler 有多个构造函数,其中一个带有第二个参数,一个名为 append 的布尔值,它应该为 true 以附加新日志而不是覆盖它们。所以应该是:
fileTxt = new FileHandler("Logging.txt", true);
如果可以的话,还有一个快速的建议,使用日志记录库,不要试图重写东西。我推荐 apache log4j2 或 slf4j,它们为您提供了很好的日志记录选项。您可以定义模式、要打印的格式(例如日志开头的日期)、time/file 大小限制、何时再次翻转文件以及许多其他选项。