当前位置: 技术问答>java相关
关于文件操作路径的问题!同时欢迎讨论日志问题!
来源: 互联网 发布时间:2015-05-28
本文导语: 我写了一个方法来写日志,当程序发生错误或例外的时候调用这个方法,我想把这个日志文件就写到我的应用程序下的一个目录,例如log目录,由于放置应用程序的目录并不确定,所以我不能写死。我就不知道该怎样...
我写了一个方法来写日志,当程序发生错误或例外的时候调用这个方法,我想把这个日志文件就写到我的应用程序下的一个目录,例如log目录,由于放置应用程序的目录并不确定,所以我不能写死。我就不知道该怎样设置目录了。下面是我写的方法的代码,生成的日志在Nt下System32目录下。
public static void writeErrLog(String name,String content){
String path = "errLog.txt";
try {
PrintWriter pw = new PrintWriter(new FileOutputStream(path,true));
pw.println(new java.sql.Timestamp(System.currentTimeMillis()));
pw.println(" ");
pw.println(name);
pw.println(" ");
pw.println(content);
pw.println(" ");
pw.close();
} catch (Exception e) {
System.out.println(
new java.sql.Timestamp(System.currentTimeMillis()) + e.toString());
}
}
另外:大家都是怎样来处理日志的,希望能多交流交流!◎
public static void writeErrLog(String name,String content){
String path = "errLog.txt";
try {
PrintWriter pw = new PrintWriter(new FileOutputStream(path,true));
pw.println(new java.sql.Timestamp(System.currentTimeMillis()));
pw.println(" ");
pw.println(name);
pw.println(" ");
pw.println(content);
pw.println(" ");
pw.close();
} catch (Exception e) {
System.out.println(
new java.sql.Timestamp(System.currentTimeMillis()) + e.toString());
}
}
另外:大家都是怎样来处理日志的,希望能多交流交流!◎
|
InputStream in=getClass().getResourceAsStream(propFileName);
可以得到你的类的class文件同目录下的propFileName文件的流,当然,propFileName也可以是相对路径,如../a.txt表示class文件的上级目录中的a.txt文件
另外,我对异常的日志是这样处理的,我自己创建了一个异常类,构造函数除了Exception类的方法外,添加了一个方法,MyException(Exception e, String msg),这样我对使用用户可以输出msg的错误信息,对日志我可以写系统抛出的异常的信息,而且我统一在MyException里面处理异常的日志纪录,所以改变日志的记录方式或者决定不记录日志都是很方便的事情
可以得到你的类的class文件同目录下的propFileName文件的流,当然,propFileName也可以是相对路径,如../a.txt表示class文件的上级目录中的a.txt文件
另外,我对异常的日志是这样处理的,我自己创建了一个异常类,构造函数除了Exception类的方法外,添加了一个方法,MyException(Exception e, String msg),这样我对使用用户可以输出msg的错误信息,对日志我可以写系统抛出的异常的信息,而且我统一在MyException里面处理异常的日志纪录,所以改变日志的记录方式或者决定不记录日志都是很方便的事情
|
在web中:
用request.getRealPath("");或application.getRealPath("");
得到web所在的绝对路径!
然后加上相对路径就可以了!
在application中:
用System.getProperty("user.dir")得到工作目录
我写了一个自己觉得很经典的日志类,不过在公司!
要的话发信给我dickensi@163.net
用request.getRealPath("");或application.getRealPath("");
得到web所在的绝对路径!
然后加上相对路径就可以了!
在application中:
用System.getProperty("user.dir")得到工作目录
我写了一个自己觉得很经典的日志类,不过在公司!
要的话发信给我dickensi@163.net
|
最好把log文件的路径用一个
配值文件来写,程序运行初始化
的时候,从配置中读出log文件
路径。这样能比较灵活控制。
配值文件来写,程序运行初始化
的时候,从配置中读出log文件
路径。这样能比较灵活控制。
|
建议你使用Log4J,很专业的日志处理
jakarta.apache.org
jakarta.apache.org
|
补充一点:日志文件的路径可以写在配置文件中,但是在处理日志信息的时候需要一个同步,不然可能会发生问题。
个人意见,仅供参考。
个人意见,仅供参考。
|
up
|
hehe..