1

我想维护一个日志文件或 txt 文件,我可以在其中维护异常详细信息以及 txt 或日志文件中的一些其他详细信息。场景是这样的

try {
    .......
} catch(exception e) {
    here the file should be created
}

在不使用日志框架的情况下,什么是最好的优化解决方案。

这对我有用吗?

try  {
    // something
} catch (Exception ex) {
    ex.printStackTrace(new PrintStream(new File("error.log")));
}
4

4 回答 4

1

如果您不想使用任何日志框架,您可以查看Java 日志框架并使用它来创建自己的实现

java.util.logging包含实现所需的所有必需类

于 2012-11-09T06:56:12.823 回答
1

我不知道你为什么不喜欢使用 logger 框架。好的,你可以做的一件事是FileWritter在顶层创建对象并在你想要的类中使用它。

BufferedWriter bw = null;
String path = "your//file//path//where u want to save your log";
try {
   bw = new BufferedWriter(new FileWriter(new File(path)));
 }

在你的代码中。

try
{
 .......
 }
catch(exception e)
{
   bw.write("here the file should be created");
   bw.flush();
}
于 2012-11-09T07:02:27.870 回答
0

日志框架可帮助您维护日志文件。

如果您不想使用它们,您可以设计自己的日志记录机制,而无需承担写入文本文件的所有痛苦。

在 log4j 的情况下:

 1. You can set the logging levels like debug,error,info etc...

 2. You can set appenders like File Appender, Console Appender etc..

这两件事可能足以满足您的需求。

于 2012-11-09T06:56:18.213 回答
0

您仍然需要运行一些将所需信息附加到(日志)文件的代码。所以最后你将有一个记录器类,它提供一些静态方法,如logExceptionlogError。一个简单的草稿:

public class MyLogger {

   public static log(Object sender, Throwable e) {
     String className = sender;
     String message = e.getMessage();
     append(sender, message);
   }

   private static void append(String classname, String message) {
     // append something to your file
   }
}

您可能想要添加时间戳和一些行号信息,这些信息可从Thread.currentThread().getStackTrace()[n](使用 n 的值,直到您从调用方法中找到帧,它是 2、3 或 4)

然后,每当您处理异常时,请执行

catch(SomeException e) {
   MyLogger.log(this, e);
}
于 2012-11-09T07:00:52.810 回答