写了一个异步服务器,用于处理网站的非实时性请求。目前每秒约写入10-100条日志,高峰时期可能写入约1000条日志。
我能想到的关于日志文件处理方法有下面几种,请问一般是如何实现的呢?
方法一: 每次写日志时获得文件句柄,写入后关闭。
方法二: 句柄作为单例,存在与整个程序生命周期,只有程序结束时才关闭。
方法三: 句柄作为单例,存在与整个程序生命周期,定期关闭重新打开。
闭关修行中......
工程上实际使用过方法三,可能我的需求跟你的有些不同。我的日志的写频度一般情况下不会超过10条/秒,但是日志文件需要按天保存,定期删掉旧文件(保存近7天的日志等等),所以定期关闭是必须的~
方法二,在出错的时候才重新尝试打开句柄
问一下,在windows 2008 下,日志句柄如果打开,那么 无法复制删除。 这个很是烦恼,我希望可以随时很方便的查看日志句柄。不知道 第一种 打开 关闭 频率很高,对程序 硬盘IO 性能影响怎样。
暂时还没有使用log4cpp cplus 的日志系统,不知道他们 是怎样的设计!
工程上实际使用过方法三,可能我的需求跟你的有些不同。我的日志的写频度一般情况下不会超过10条/秒,但是日志文件需要按天保存,定期删掉旧文件(保存近7天的日志等等),所以定期关闭是必须的~
方法二,在出错的时候才重新尝试打开句柄
问一下,在windows 2008 下,日志句柄如果打开,那么 无法复制删除。
这个很是烦恼,我希望可以随时很方便的查看日志句柄。不知道 第一种 打开 关闭 频率很高,对程序 硬盘IO 性能影响怎样。
暂时还没有使用log4cpp cplus 的日志系统,不知道他们 是怎样的设计!