我的Java路上那些事兒
快樂成長
posts - 110, comments - 101, trackbacks - 0, articles - 7
BlogJava
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
服務器監控狗 log4j FileWatchdog 臨控環境變化 方便多了
Posted on 2012-02-17 14:03
云云
閱讀(3553)
評論(0)
編輯
收藏
用java
寫服務
程序
時經常會涉及到監控某些配置
文件
,當配置文件發生變化時實時重新加載該文件的內容到內存.
實際上log4j里有現成的類FileWatchdog做了類似的工作.我們只需繼承它,然后重寫它的一些方法就可以了.
/** */
/**
使用log4j的監控狗
*/
public
class
IPAccessFileWatchdog
extends
FileWatchdog
{
public
IPAccessFileWatchdog(String filename)
{
super
(filename);
}
public
void
doOnChange()
{
List
<
String
>
list
=
IPAccessController.
this
.loadIPRule(
new
File(
this
.filename));
if
(list
!=
null
)
{
IPAccessController.
this
.ipRule
=
list.toArray(
new
String[list.size()]);
}
else
{
IPAccessController.
this
.ipRule
=
null
;
}
LogLog.warn(
"
ip access config load completed from file:
"
+
filename);
}
}
}
FileWatchdog的代碼也很簡單,其實就是起一個線程,每隔固定的時間掃描一次監控的文件.我把代碼也貼出來:
'
//
Contributors: Mathias Bogaert
package
org.apache.log4j.helpers;
import
java.io.File;
import
org.apache.log4j.helpers.LogLog;
public
abstract
class
FileWatchdog
extends
Thread
{
static
final
public
long
DEFAULT_DELAY
=
60000
;
protected
String filename;
protected
long
delay
=
DEFAULT_DELAY;
File file;
long
lastModif
=
0
;
boolean
warnedAlready
=
false
;
boolean
interrupted
=
false
;
protected
FileWatchdog(String filename)
{
this
.filename
=
filename;
file
=
new
File(filename);
setDaemon(
true
);
checkAndConfigure();
}
public
void
setDelay(
long
delay)
{
this
.delay
=
delay;
}
abstract
protected
void
doOnChange();
protected
void
checkAndConfigure()
{
boolean
fileExists;
try
{
fileExists
=
file.exists();
}
catch
(SecurityException e)
{
LogLog.warn(
"
Was not allowed to read check file existance, file:[
"
+
filename
+
"
].
"
);
interrupted
=
true
;
//
there is no point in continuing
return
;
}
if
(fileExists)
{
long
l
=
file.lastModified();
//
this can also throw a SecurityException
if
(l
>
lastModif)
{
//
however, if we reached this point this
lastModif
=
l;
//
is very unlikely.
doOnChange();
warnedAlready
=
false
;
}
}
else
{
if
(
!
warnedAlready)
{
LogLog.debug(
"
[
"
+
filename
+
"
] does not exist.
"
);
warnedAlready
=
true
;
}
}
}
public
void
run()
{
while
(
!
interrupted)
{
try
{
Thread.sleep(delay);
}
catch
(InterruptedException e)
{
//
no interruption expected
}
checkAndConfigure();
}
}
}
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Powered by:
BlogJava
Copyright © 云云
日歷
<
2012年2月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(9)
給我留言
查看公開留言
查看私人留言
隨筆檔案
2015年7月 (1)
2014年9月 (3)
2014年1月 (3)
2013年12月 (1)
2013年11月 (4)
2013年10月 (2)
2013年7月 (2)
2013年6月 (3)
2013年4月 (2)
2013年1月 (2)
2012年12月 (4)
2012年11月 (3)
2012年10月 (3)
2012年9月 (2)
2012年8月 (1)
2012年7月 (9)
2012年6月 (2)
2012年5月 (6)
2012年4月 (7)
2012年3月 (2)
2012年2月 (1)
2012年1月 (1)
2011年12月 (2)
2011年11月 (16)
2011年10月 (7)
2011年8月 (1)
2011年6月 (2)
2011年5月 (5)
2011年4月 (9)
2011年3月 (10)
搜索
最新評論
1.?re: CAP原理與最終一致性 強一致性 透析
學習。
--NewSea
2.?re: 一致性哈希算法與Java實現
有一個問題,如果使用虛擬節點,某臺機器每次宕機再恢復后都需要遷移數據。這樣是否反而更麻煩了。
--三單聯咖啡色
3.?re: java static塊和static 方法 的使用區別
sss
--zhangsan
4.?re: struts2 jsp頁面使用s:if 標簽
你是基佬 哦耶耶
--基佬
5.?re: android開發過程中 R文件消失 clean 和 build project都無效 已解決
評論內容較長,點擊標題查看
--llll
閱讀排行榜
1.?linux 新建用戶、用戶組 以及為新用戶分配權限(127887)
2.?Oracle內連接、外連接、右外連接、全外連接小總結(93205)
3.?zookeeper 集群安裝(單點與分布式成功安裝)摘錄(79153)
4.?android開發過程中 R文件消失 clean 和 build project都無效 已解決(76972)
5.?一致性哈希算法與Java實現 (48855)
評論排行榜
1.?Oracle內連接、外連接、右外連接、全外連接小總結(12)
2.?zookeeper 集群安裝(單點與分布式成功安裝)摘錄(11)
3.?android開發過程中 R文件消失 clean 和 build project都無效 已解決(6)
4.?struts2 jsp表單提交后保留表單中輸入框中的值 下拉框select與input(6)
5.?jquery 自動過濾表單輸入框前后空格(5)
主站蜘蛛池模板:
在线观看免费无码视频
|
三级片免费观看久久
|
一个人免费日韩不卡视频
|
亚洲AV无码专区国产乱码电影
|
亚洲精品高清视频
|
两个人看的www视频免费完整版
|
亚洲高清无码专区视频
|
一区二区三区在线观看免费
|
www国产亚洲精品久久久
|
一级白嫩美女毛片免费
|
日本亚洲成高清一区二区三区
|
少妇性饥渴无码A区免费
|
女性自慰aⅴ片高清免费
|
亚洲av成人中文无码专区
|
免费成人黄色大片
|
CAOPORN国产精品免费视频
|
亚洲av永久无码精品漫画
|
麻花传媒剧在线mv免费观看
|
亚洲精品美女久久久久9999
|
中国人xxxxx69免费视频
|
亚洲中字慕日产2020
|
国产又黄又爽又刺激的免费网址
|
亚洲AV色无码乱码在线观看
|
免费大片在线观看网站
|
中文字幕无码免费久久9一区9
|
亚洲成Av人片乱码色午夜
|
免费精品国产自产拍在
|
日本亚洲中午字幕乱码
|
成年女人毛片免费播放人
|
美女被爆羞羞网站免费
|
亚洲精品V欧洲精品V日韩精品
|
午夜国产羞羞视频免费网站
|
中文字幕看片在线a免费
|
亚洲乱码卡三乱码新区
|
亚洲国产a级视频
|
100部毛片免费全部播放完整
|
午夜亚洲WWW湿好爽
|
亚洲av不卡一区二区三区
|
四虎成人免费影院网址
|
永久免费av无码入口国语片
|
亚洲色中文字幕在线播放
|