青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評論 :: 0 Trackbacks
公告
我的隨筆
我的評論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網游開發(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊
公告照片
搜索
積分與排名
積分 - 665297
排名 - 24
最新評論
1.?re: boost::asio::spawn 將一統C++網絡庫
asio 成為C++首選網絡庫
--linda
2.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--金慶
3.?re: mingw編譯OrzNet
能發送一個mingw編譯好的OrzNet庫給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
5.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯誤(11084)
2.?SVN中邪惡的replace(11014)
3.?VS2005編譯libevent(10475)
4.?混音算法的學習與研究(10273)
5.?C調用lua腳本的效率測試(9030)
評論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯誤(18)
4.?C++引用優于指針(17)
5.?ACE與ASIO之間關于Socket編程的比較(16)
解決log4cxx退出時的異常
解決log4cxx退出時的異常
(金慶的專欄)
如果使用log4cxx的FileWatchdog線程來監視日志配置文件進行動態配置,就可能碰到程序退出時產生的異常。
程序退出時清理工作耗時很長時,該異常很容易出現。
原因是main()之后FileWatchdog線程試圖checkAndConfigure()檢查配置文件。
該錯誤已提交,見:LOGCXX-416 ( https://issues.apache.org/jira/browse/LOGCXX-416?jql=project%20%3D%20LOGCXX )
其中有錯誤復現代碼。
只需在main()結束時結束Watchdog線程,就可以避開錯誤。
log4cxx中的FileWatchdog是個new出來的變量,沒有結束,沒有刪除。
可以自定義一個Watchdog, 僅作為main()的局部變量,main()退出時自動結束。
用
Log4cxxConfigurator::XmlWatchdog wdog("log4j.xml", 5000);
代替原來的
log4cxx::xml::DOMConfigurator::configAndWatch("log4j.xml", 5000);
例如:
int main()
{
setlocale(LC_ALL, "");
Log4cxxConfigurator::XmlWatchdog wdog("log4j.xml", 5000);
...
}
Log4cxxConfigurator代碼如下:
1
//
log4cxxconfigurator.h
2
#pragma once
3
4
#include
<
string
>
5
#include
<
boost
/
scoped_ptr.hpp
>
6
7
namespace
log4cxx {
namespace
helpers {
8
class
FileWatchdow;
9
}}
10
11
namespace
Log4cxxConfigurator {
12
13
typedef boost::scoped_ptr
<
log4cxx::helpers::FileWatchdog
>
FileWatchdogPtr;
14
15
class
PropertyWatchdow
16
{
17
public
:
18
PropertyWatchdog(
const
std::
string
&
sPropertyFileName,
long
lDelayMs);
19
~
PropertyWatchdog();
20
private
:
21
FileWatchdogPtr m_pImpl;
22
};
23
24
class
XmlWatchdog
25
{
26
public
:
27
XmlWatchdog(
const
std::
string
&
sXmlFileName,
long
lDelayMs);
28
~
XmlWatchdog();
29
private
:
30
FileWatchdogPtr m_pImpl;
31
};
32
33
}
//
namespace Log4cxxConfigurator
34
1
//
log4cxxconfigurator.cpp
2
#include
"
log4cxxconfigurator.h
"
3
4
#include
<
log4cxx
/
helpers
/
filewatchdow.h
>
5
#include
<
log4cxx
/
logmanager.h
>
6
#include
<
log4cxx
/
propertyconfigurator.h
>
7
#include
<
log4cxx
/
xml
/
domconfigurator.h
>
8
9
using
namespace
log4cxx;
10
using
namespace
log4cxx::helpers;
11
using
namespace
log4cxx::xml;
12
13
namespace
{
14
15
class
XmlWatchdogImp :
public
FileWatchdog
16
{
17
public
:
18
XmlWatchdogImp(
const
File
&
filename) : FileWatchdog(filename) {};
19
20
virtural
void
doOnChange()
21
{
22
DOMConfigurator().doConfigure(file, LogManager::getLoggerRepository());
23
}
24
};
25
26
class
PropertyWatchdogImp :
public
FileWatchdog
27
{
28
public
:
29
explicit
PropertyWatchdogImp(
const
File
&
filename) : FileWatchdog(filename) {};
30
31
virtual
void
doOnChange()
32
{
33
PropertyConfigurator().doConfigure(file, LogManager::getLoggerRepository())
34
}
35
};
36
37
}
//
namespace
38
39
namespace
Log4cxxConfigurator {
40
41
PropertyWatchdog::PropertyWatchdog(
const
std::
string
&
sPropertyFileName,
long
lDelayMs)
42
: m_pImpl(
new
PropertyWatchdogImp(File(sPropertyFileName)))
//
scoped_ptr
43
{
44
m_pImpl
->
setDelay(lDelayMs);
45
m_pImpl
->
start();
46
}
47
48
PropertyWatchdog::
~
PropertyWatchdog()
49
{
50
m_pImpl.reset()
51
LogManager::shutdown();
52
}
53
54
XmlWatchdow::XmlWatchdow(
const
std::
string
&
sXmlFileName,
long
lDelayMs)
55
: m_pImpl(
new
XmlWatchdogImp(File(sXmlFileName)))
//
scoped_ptr
56
{
57
m_pImpl
->
setDelay(lDelayMs);
58
m_pImpl
->
start();
59
}
60
61
XmlWatchdog::
~
XmlWatchdog()
62
{
63
m_pImpl.reset();
64
LogManager::shutdown();
65
}
66
67
}
//
namespace Log4cxxConfigurator
68
另外,AsyncAppender線程在退出時也可能拋 ThreadException,
所以在Watchdog的析構中調用了shutdown().
詳見:Log4Cxx 0.10.0 在 Linux 下退出程序時導致程序中斷
( http://blog.waterlin.org/articles/log4cxx-10-exit-error-under-linux.html )
posted on 2014-01-15 17:18
金慶
閱讀(974)
評論(0)
編輯
收藏
引用
所屬分類:
1. C/C++
只有注冊用戶
登錄
后才能發表評論。
相關文章:
How are dtLinks created in NavMesh
C++ parameter passing rules
Naming Conventions for Accessors
Visual Studio 2019 Compiler Hangs
Fbx File Format Identifier
查找內存錯誤
std::thread 中的異常會丟失調用棧
用賦值代替 protobuf CopyFrom()
vs2017 linux 編譯輸出改成 vs 格式
為 LiteIDE 添加選中標記
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
亚洲人成在线观看
|
欧美在现视频
|
亚洲国产裸拍裸体视频在线观看乱了
|
欧美a级片网
|
最新中文字幕亚洲
|
亚洲日本电影
|
国产精品播放
|
久久一区二区三区av
|
久久激情综合网
|
亚洲欧洲日产国产网站
|
亚洲精品一线二线三线无人区
|
欧美日韩成人在线观看
|
亚洲综合导航
|
欧美综合国产
|
日韩视频在线你懂得
|
亚洲先锋成人
|
亚洲高清免费视频
|
一区二区不卡在线视频 午夜欧美不卡在
|
欧美性猛片xxxx免费看久爱
|
欧美专区一区二区三区
|
日韩视频永久免费观看
|
亚洲高清视频一区二区
|
欧美日韩视频在线一区二区观看视频
|
亚洲欧美第一页
|
性欧美办公室18xxxxhd
|
亚洲第一成人在线
|
99成人在线
|
国产综合精品
|
日韩亚洲欧美成人一区
|
国产免费亚洲高清
|
91久久精品国产91久久性色tv
|
国产精品福利av
|
久久三级福利
|
欧美亚洲第一区
|
欧美va亚洲va国产综合
|
国产精品久久久久久久久借妻
|
久久在线免费
|
欧美午夜在线
|
亚洲第一主播视频
|
国产伦精品一区二区三区四区免费
|
欧美激情亚洲国产
|
国产日韩欧美在线观看
|
日韩一级精品
|
91久久精品国产91性色
|
久久高清一区
|
欧美一区二区三区四区在线观看地址
|
欧美mv日韩mv国产网站
|
久久久亚洲欧洲日产国码αv
|
欧美日韩国产小视频
|
美女视频黄 久久
|
国产精品入口福利
|
在线视频欧美日韩
|
一本色道久久综合亚洲精品不卡
|
久久久一本精品99久久精品66
|
亚洲免费影视
|
欧美午夜精品久久久久久人妖
|
一区二区三区四区五区精品视频
|
国产精品视频免费观看
|
亚洲日本va在线观看
|
亚洲国产精品va在看黑人
|
欧美一区二区在线免费播放
|
午夜国产欧美理论在线播放
|
欧美系列精品
|
一区二区三区精品视频在线观看
|
欧美一区二区三区四区夜夜大片
|
欧美激情在线免费观看
|
毛片精品免费在线观看
|
国产视频久久久久
|
亚洲欧美日韩天堂
|
欧美亚洲在线观看
|
国产精品日韩二区
|
亚洲性夜色噜噜噜7777
|
午夜精品亚洲
|
国产精品一区二区欧美
|
亚洲欧美国产精品桃花
|
欧美怡红院视频
|
国产区精品在线观看
|
欧美一区综合
|
蜜臀久久久99精品久久久久久
|
亚洲电影观看
|
欧美成人官网二区
|
99re这里只有精品6
|
亚洲在线视频网站
|
国产亚洲欧美另类一区二区三区
|
欧美综合第一页
|
欧美超级免费视 在线
|
亚洲美女视频
|
国产欧美亚洲日本
|
久久亚洲国产精品日日av夜夜
|
欧美国产丝袜视频
|
一区二区三区四区五区视频
|
国产精品盗摄久久久
|
欧美亚洲一区二区在线观看
|
久久亚洲影院
|
亚洲免费观看高清完整版在线观看熊
|
欧美日韩一级视频
|
亚洲一区在线免费
|
欧美国内亚洲
|
亚洲欧美在线磁力
|
亚洲国产精品一区二区尤物区
|
欧美黄色片免费观看
|
亚洲欧美激情诱惑
|
免费日韩精品中文字幕视频在线
|
夜夜嗨av一区二区三区
|
国产亚洲一区二区精品
|
欧美激情精品久久久久久
|
一区二区三区久久
|
欧美电影在线观看
|
香蕉成人伊视频在线观看
|
在线观看三级视频欧美
|
欧美日韩亚洲一区二区三区在线观看
|
欧美一区二区视频在线
|
亚洲九九爱视频
|
另类酷文…触手系列精品集v1小说
|
99综合电影在线视频
|
国内伊人久久久久久网站视频
|
欧美日韩二区三区
|
久久久久久久综合
|
亚洲欧美综合v
|
亚洲日本成人在线观看
|
美女图片一区二区
|
欧美伊人久久久久久久久影院
|
一个人看的www久久
|
在线精品亚洲一区二区
|
国产欧美丝祙
|
欧美午夜无遮挡
|
欧美人成网站
|
免费不卡在线观看av
|
久久精品国产欧美亚洲人人爽
|
亚洲一级在线观看
|
亚洲免费电影在线
|
91久久久久久久久
|
欧美国产精品日韩
|
久久影视三级福利片
|
久久九九免费
|
午夜影院日韩
|
亚洲欧美日韩在线高清直播
|
中文日韩在线视频
|
aⅴ色国产欧美
|
亚洲精品一区二区三区四区高清
|
影音欧美亚洲
|
韩日精品中文字幕
|
国产亚洲欧美另类中文
|
国产欧美综合一区二区三区
|
国产精品高潮视频
|
国产精品麻豆va在线播放
|
国产精品国产三级国产专播精品人
|
欧美日韩精品免费
|
欧美小视频在线
|
欧美视频在线观看 亚洲欧
|
欧美天天影院
|
国产精品久久久久久久电影
|
国产精品你懂的在线
|
国产精品日韩专区
|
国产一区二区三区久久
|
亚洲乱码久久
|
一区二区激情视频
|
亚洲午夜视频
|
欧美亚洲免费高清在线观看
|
午夜精品一区二区三区四区
|
香蕉乱码成人久久天堂爱免费
|
国产精品国产精品
|
国产精品在线看
|
国产一区二区三区免费不卡
|
在线日本成人
|
999在线观看精品免费不卡网站
|
亚洲午夜91
|
欧美一级欧美一级在线播放
|
久久中文字幕导航
|
亚洲激情中文1区
|
中日韩视频在线观看
|
欧美一区二区大片
|
免费亚洲一区二区
|
国产精品豆花视频
|
精品69视频一区二区三区
|
亚洲精品久久久久久久久
|
亚洲综合色在线
|
久久噜噜亚洲综合
|
亚洲三级免费电影
|
亚洲免费视频成人
|
美女爽到呻吟久久久久
|
欧美网站在线
|
在线播放中文字幕一区
|
国产精品99久久久久久久久久久久
|
香蕉精品999视频一区二区
|
欧美r片在线
|
亚洲在线一区二区三区
|
男人插女人欧美
|
国产欧美一二三区
|
亚洲最新在线
|
久久中文欧美
|
亚洲性色视频
|
欧美激情91
|
影音先锋日韩资源
|
欧美在线国产精品
|
日韩手机在线导航
|
欧美77777
|
**网站欧美大片在线观看
|
午夜精品久久久久影视
|
亚洲三级免费电影
|