青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
金慶的專欄
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)
相冊
公告照片
搜索
積分與排名
積分 - 662252
排名 - 25
最新評論
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" 錯誤(11075)
2.?SVN中邪惡的replace(11000)
3.?VS2005編譯libevent(10456)
4.?混音算法的學習與研究(10258)
5.?C調用lua腳本的效率測試(9025)
評論排行榜
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
金慶
閱讀(969)
評論(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 © 金慶
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
久久精品在线
|
欧美伊人影院
|
欧美黄色视屏
|
牛牛国产精品
|
欧美电影免费网站
|
欧美日本三级
|
欧美性猛交xxxx乱大交蜜桃
|
欧美日韩精品一本二本三本
|
欧美日韩国产在线看
|
国产精品地址
|
国产日韩欧美在线看
|
国内精品久久久久影院色
|
黄色成人在线网站
|
亚洲伦理久久
|
亚洲欧美日韩成人
|
乱人伦精品视频在线观看
|
91久久亚洲
|
日韩视频精品在线
|
午夜一区二区三区在线观看
|
久久夜色精品国产欧美乱
|
欧美激情网友自拍
|
国产日韩一级二级三级
|
亚洲精品综合久久中文字幕
|
午夜精品久久久久久久久久久久久
|
久久成人这里只有精品
|
欧美成人免费在线
|
日韩亚洲欧美中文三级
|
久久国产99
|
国产精品白丝黑袜喷水久久久
|
午夜视频一区二区
|
久久免费视频在线观看
|
亚洲人成网站精品片在线观看
|
一区二区三区免费网站
|
久久午夜视频
|
国产精品一级在线
|
夜夜嗨av一区二区三区
|
久久精品人人做人人爽
|
亚洲人成网站精品片在线观看
|
亚洲专区一区
|
欧美日韩一区二区三区四区在线观看
|
国产精一区二区三区
|
亚洲最新中文字幕
|
久久综合色综合88
|
亚洲欧美制服中文字幕
|
欧美日韩久久久久久
|
亚洲夫妻自拍
|
久久色中文字幕
|
亚洲视频第一页
|
欧美二区乱c少妇
|
亚洲缚视频在线观看
|
香蕉尹人综合在线观看
|
一道本一区二区
|
欧美激情在线有限公司
|
在线观看日韩av
|
韩国一区二区三区在线观看
|
欧美在线免费看
|
中日韩视频在线观看
|
免费在线看成人av
|
伊人狠狠色丁香综合尤物
|
亚洲女爱视频在线
|
亚洲黄色免费网站
|
免费在线日韩av
|
亚洲激情偷拍
|
亚洲黄色av
|
欧美精品一区在线发布
|
亚洲福利一区
|
欧美国产日韩一区二区三区
|
久久综合999
|
在线成人亚洲
|
欧美成人精品不卡视频在线观看
|
久久精品国产久精国产思思
|
国内精品久久久久久久影视蜜臀
|
欧美在线一二三四区
|
在线视频欧美精品
|
欧美调教vk
|
欧美亚洲综合网
|
午夜精品视频一区
|
在线看片欧美
|
亚洲国产精品久久久
|
欧美激情亚洲精品
|
在线中文字幕不卡
|
亚洲欧美日韩国产综合
|
国产欧美精品一区二区三区介绍
|
亚洲在线网站
|
欧美在线精品免播放器视频
|
韩国视频理论视频久久
|
老牛嫩草一区二区三区日本
|
欧美ab在线视频
|
夜夜夜精品看看
|
午夜激情亚洲
|
亚洲福利免费
|
宅男噜噜噜66一区二区66
|
国产精品自拍小视频
|
蜜臀久久99精品久久久久久9
|
午夜精品久久久久久久白皮肤
|
午夜国产精品视频
|
亚洲成色777777女色窝
|
亚洲国产欧美一区二区三区久久
|
欧美高清在线观看
|
亚洲欧美中文日韩v在线观看
|
欧美在线播放视频
|
亚洲美女精品成人在线视频
|
亚洲欧美日本国产有色
|
亚洲国产视频一区二区
|
亚洲一区二区在线播放
|
亚洲精品日韩激情在线电影
|
午夜精品久久久久久久99樱桃
|
久久国产乱子精品免费女
|
老司机午夜精品
|
亚洲摸下面视频
|
免费不卡在线观看
|
久久国产精品亚洲77777
|
欧美顶级少妇做爰
|
久久亚洲图片
|
国产精品日产欧美久久久久
|
亚洲第一区中文99精品
|
国产精品免费视频观看
|
欧美激情精品久久久久久
|
国产色婷婷国产综合在线理论片a
|
亚洲美女毛片
|
亚洲精品乱码久久久久
|
久久精品中文字幕一区
|
午夜欧美精品久久久久久久
|
欧美高清在线播放
|
欧美成人午夜激情视频
|
国语自产在线不卡
|
亚洲一区二区精品
|
亚洲私拍自拍
|
欧美视频1区
|
亚洲精品国产精品国自产观看
|
亚洲成人在线视频播放
|
欧美亚洲综合网
|
欧美亚洲尤物久久
|
国产精品久久久一区麻豆最新章节
|
国产精品超碰97尤物18
|
亚洲国产精品va在线观看黑人
|
国内精品久久久久国产盗摄免费观看完整版
|
中文欧美日韩
|
亚洲综合欧美日韩
|
欧美日韩一区三区四区
|
亚洲乱码国产乱码精品精可以看
|
亚洲国产一区二区在线
|
久久久久久免费
|
欧美福利视频在线
|
亚洲韩国日本中文字幕
|
久久久久久久久久码影片
|
狼人天天伊人久久
|
91久久国产精品91久久性色
|
蜜臀99久久精品久久久久久软件
|
六月丁香综合
|
亚洲国产毛片完整版
|
久久免费精品日本久久中文字幕
|
久久综合999
|
亚洲福利在线视频
|
欧美精品九九99久久
|
亚洲高清不卡av
|
一区二区冒白浆视频
|
欧美日本在线一区
|
一区二区三区 在线观看视频
|
午夜在线精品
|
极品少妇一区二区
|
欧美刺激性大交免费视频
|
亚洲精品一区久久久久久
|
欧美激情第1页
|
亚洲国产一区二区三区高清
|
欧美激情国产日韩精品一区18
|
亚洲精品一区二区在线观看
|
亚洲国产日韩欧美综合久久
|
久久综合电影一区
|
欧美在线视频一区
|
亚洲人被黑人高潮完整版
|
免费不卡中文字幕视频
|
免费av成人在线
|
亚洲人体大胆视频
|
欧美色精品在线视频
|
亚洲一区二区四区
|
免费观看成人www动漫视频
|
亚洲精品久久久久久久久久久久
|
欧美女同视频
|
香港久久久电影
|
欧美大秀在线观看
|
亚洲视频高清
|
狠狠色综合色区
|
欧美激情一区二区三区不卡
|
亚洲一区网站
|
欧美成人激情在线
|
亚洲一区综合
|
136国产福利精品导航网址
|
欧美精品一区二区三区一线天视频
|
国产精品久在线观看
|
久久福利视频导航
|
亚洲精品一二区
|
久久久久久有精品国产
|
一区二区高清在线观看
|
国产综合色一区二区三区
|
欧美日韩久久精品
|
久久精品官网
|
亚洲特色特黄
|
日韩视频永久免费观看
|
免费欧美日韩
|