找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4317|回复: 7

日志文件的续写问题

[复制链接]
发表于 2007-12-18 23:45:14 | 显示全部楼层 |阅读模式
我是ACE新手,最近在学ACE的日志策略管理。各位大侠,我在程序中使用了ACE的日志策略来管理写日志文件。可是我把这个程序重启后,发现日志文件被重写了,而不是续写这个日志文件。请问怎样(比如通过ACE_Service_Config的配置)来设置续写日志文件而不是重写呢?
 楼主| 发表于 2007-12-18 23:45:21 | 显示全部楼层
很简单,需要你设置log文件的打开方式:
  1. //设置LOG系统
  2. ACE_LOG_MSG->open(argv[0],ACE_Log_Msg::SYSLOG,ACE_TEXT("Server"));
  3. ACE_LOG_MSG->open(argv[0],ACE_Log_Msg::STDERR| ACE_Log_Msg::OSTREAM);
  4. //设置LOG信息
  5. ACE_OSTREAM_TYPE * log_stream = NULL;
  6. ACE_NEW_RETURN(log_stream,std::ofstream(".\\Server.log",ios::out|ios::app|ios::binary),-1);
  7. ACE_LOG_MSG->msg_ostream(log_stream,1);
  8. ACE_LOG_MSG->set_flags(ACE_Log_Msg::OSTREAM);
复制代码
 楼主| 发表于 2007-12-18 23:46:06 | 显示全部楼层
但这里没有使用日志策略配置。我想学习的是,如果使用了日志策略配置,怎么样来续写日志策略配置指定的日志文件。而且有可能像下面这样配置日志文件尺寸限制:

dynamic Logger Service_Object * ACE:_make_ACE_Logging_Strategy() "-s log.out -i 1800 -m 1024 -f STDERR|OSTREAM -p INFO"

这样设置后,如果日志文件超过日志尺寸限制时,ACE_Logging_Strategy会把当前日志文件备份到log.out.1、log.out.2......等这样的文件,然后继续重写当前的log.out日志文件。

到此时,如果重置了日志策略,比如最有可能的重启应用程序,如何能保证日志策略是在原有日志的基础上续写日志,而不是把log.out,log.out.1,log.out.2等等这些日志全部覆盖掉?有没有可能通过上面的配置文件来配置?

这些是我在学习ACE_wrappers\tests例子里的日志程序时想到的。
 楼主| 发表于 2007-12-18 23:46:18 | 显示全部楼层
这个倒没试验过,未必能做得到吧?我表示怀疑。这个功能属于比较细节、带有偏好性质的功能,ACE未必实现 - 至少我没听闻。
 楼主| 发表于 2007-12-18 23:46:23 | 显示全部楼层
可以尝试使用回调,在回调中检查日志状态并且修改定向文件。没干过,不过可以试试。
发表于 2008-4-16 14:03:13 | 显示全部楼层
我现在也想用啊.在哪能找到相关的例子阿
发表于 2008-4-16 17:48:31 | 显示全部楼层
ACE书上有写,自己一试便知
发表于 2009-6-3 10:39:12 | 显示全部楼层
std::ofstream *pStream = new std::ofstream();
pStream->open("svrupdate.log", std::ios_base::app);
ACE_OSTREAM_TYPE *output = pStream;

ACE_LOG_MSG->msg_ostream (output, 1);
ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR);

[ 本帖最后由 chinablueker 于 2009-6-3 10:43 编辑 ]
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-23 03:29 , Processed in 0.015495 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表