日志框架实现实时修改,实时生效,具体框架思路(4)
2015-06-23 11:42
375 查看
代码接第(3)章
fw.write(ENTER_CODE);
for (LogConfigBean lc : list) {
writeLogWithModule(fw, lc);
fw.write(ENTER_CODE);
}
} catch (FileNotFoundException e) {
LOG.error("file " + backFile.getAbsolutePath() + " not found \n"
+ e.getMessage());
} catch (IOException e) {
LOG.error("file " + backFile.getAbsolutePath() + " IOException \n"
+ e.getMessage());
} finally {
// 关闭流
if (null != fw) {
try {
fw.close();
} catch (IOException e) {
LOG.error("close file " + backFile.getAbsolutePath()
+ " IO error\n" + e.getMessage());
}
}
}
String log4j = WEB_INF_PATH + LOG4J_PROPERTIES_NAME;
backFile.renameTo(new File(log4j));
}
private void initData(FileWriter fw, String key, String value)
throws IOException {
fw.write(key + "=" + value + ENTER_CODE);
}
private String initPropsData(Properties props, String key,
String defaultValue) {
String value = props.getProperty(key);
value = (value == null || "".equals(value.trim())) ? defaultValue
: value;
return key + "=" + value + ENTER_CODE;
}
fw.write(ENTER_CODE);
for (LogConfigBean lc : list) {
writeLogWithModule(fw, lc);
fw.write(ENTER_CODE);
}
} catch (FileNotFoundException e) {
LOG.error("file " + backFile.getAbsolutePath() + " not found \n"
+ e.getMessage());
} catch (IOException e) {
LOG.error("file " + backFile.getAbsolutePath() + " IOException \n"
+ e.getMessage());
} finally {
// 关闭流
if (null != fw) {
try {
fw.close();
} catch (IOException e) {
LOG.error("close file " + backFile.getAbsolutePath()
+ " IO error\n" + e.getMessage());
}
}
}
String log4j = WEB_INF_PATH + LOG4J_PROPERTIES_NAME;
backFile.renameTo(new File(log4j));
}
private void initData(FileWriter fw, String key, String value)
throws IOException {
fw.write(key + "=" + value + ENTER_CODE);
}
private String initPropsData(Properties props, String key,
String defaultValue) {
String value = props.getProperty(key);
value = (value == null || "".equals(value.trim())) ? defaultValue
: value;
return key + "=" + value + ENTER_CODE;
}
相关文章推荐
- 【读书笔记:C++ primer plus 第六版 中文版】第7章 函数---C++的编程模块
- JavaSE_基础库类_String类
- Java核心API -- 6(Collection集合List、Set、ArrayList、HashSet)
- 转:Android开发:使用JNI读取应用签名
- Coursera台大机器学习课程笔记6 -- The VC Dimension
- 如何在桌面版 Ubuntu 中用命令行更改系统代理设置
- 张国祥老师应邀参加宁波公司化运作系统班学员企业交流活动
- spring-mvc入门
- vs qt中增加png图标
- 深入浅出JMS(一)——JMS简要
- Spring Web MVC 原理学习(上)
- Tmux 速成教程:技巧和调整
- JavaSE_基础库类_简介
- ATL 编写COM
- 微信分享
- C++ 关键字 explicit, export, mutable
- Unity C#单例模式
- CorelDraw二次开发,图像DPI分辨率算法
- PHP配置把错误日志以邮件方式发送方法(Windows系统)
- fortran 函数的调用标准