我想维护一个日志文件或txt文件,我可以在txt或log文件中维护异常详细信息以及其他一些细节。方案是这样的
try {
.......
} catch(exception e) {
here the file should be created
}
如果不使用日志框架,最佳的优化解决方案是什么。
这对我有用吗?
try {
// something
} catch (Exception ex) {
ex.printStackTrace(new PrintStream(new File("error.log")));
}
答案 0 :(得分:1)
如果您不想使用任何日志框架,可以查看Java Logging Framework并使用它来创建自己的实现
java.util.logging包含您实施所需的所有必需类
答案 1 :(得分:1)
我不知道为什么你不喜欢使用logger Framework。
好的,您可以在顶层创建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();
}
答案 2 :(得分:0)
Logging Frameworks可以帮助您维护日志文件。
如果您不想使用它们,您可以设计自己的日志记录机制 写入文本文件。
如果是log4j:
1. You can set the logging levels like debug,error,info etc...
2. You can set appenders like File Appender, Console Appender etc..
这两件事可能满足你的需要。
答案 3 :(得分:0)
您仍然需要运行一些将所需信息附加到(日志)文件的代码。因此,最后您将拥有一个 logger 类,它提供一些静态方法,如 logException 或 logError 。这是一个微不足道的草案:
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)< / p>
然后,每当处理异常时,请执行
catch(SomeException e) {
MyLogger.log(this, e);
}