ACE日志输出时用%D输出时间:
ACE_DEBUG ((LM_INFO, ACE_TEXT ("%DHi Mom/n")));
结果如:
Thu Mar 13 2008 17:38:01.453000Hi Mom
格式不符合中文习惯,并且太长。我把源码改了一下,这样输出时间时符合中国习惯(比如:08-05-12 09:37:20.123),并且节省输出长度(Windows下只能输出到毫秒,所以秒后面只要3位小数即可),改完重新编译ACE库即可。
// ACE.cpp,v 4.357 2003/11/05 23:30:46 shuston Exp
#include "ace/ACE.h"
#if defined (ACE_LACKS_INLINE_FUNCTIONS)
#include "ace/ACE.i"
#endif /* ACE_LACKS_INLINE_FUNCTIONS */
… …
// Returns the current timestamp in the form
// "hour:minute:second:microsecond."The month, day, and year are
// also stored in the beginning of the date_and_time array.
ACE_TCHAR *
ACE::timestamp (ACE_TCHARdate_and_time[],
intdate_and_timelen,
intreturn_pointer_to_first_digit)
{
//ACE_TRACE ("ACE::timestamp");
if (date_and_timelen < 35)
{
errno = EINVAL;
return 0;
}
#if defined (WIN32)
// Emulate Unix.Win32 does NOT support all the UNIX versions
// below, so DO we need this ifdef.
static const ACE_TCHAR *day_of_week_name[] =
{
ACE_LIB_TEXT ("Sun"),
ACE_LIB_TEXT ("Mon"),
ACE_LIB_TEXT ("Tue"),
ACE_LIB_TEXT ("Wed"),
ACE_LIB_TEXT ("Thu"),
ACE_LIB_TEXT ("Fri"),
ACE_LIB_TEXT ("Sat")
};
static const ACE_TCHAR *month_name[] =
{
ACE_LIB_TEXT ("Jan"),
ACE_LIB_TEXT ("Feb"),
ACE_LIB_TEXT ("Mar"),
ACE_LIB_TEXT ("Apr"),
ACE_LIB_TEXT ("May"),
ACE_LIB_TEXT ("Jun"),
ACE_LIB_TEXT ("Jul"),
ACE_LIB_TEXT ("Aug"),
ACE_LIB_TEXT ("Sep"),
ACE_LIB_TEXT ("Oct"),
ACE_LIB_TEXT ("Nov"),
ACE_LIB_TEXT ("Dec")
};
SYSTEMTIME local;
::GetLocalTime (&local);
/*更改以下两句,输出08-05-12 09:37:20.123的格式
ACE_OS::sprintf (date_and_time,
ACE_LIB_TEXT ("%3s %3s %2d %04d %02d:%02d:%02d.%06d"),
day_of_week_name[local.wDayOfWeek],
month_name[local.wMonth - 1],
(int) local.wDay,
(int) local.wYear,
(int) local.wHour,
(int) local.wMinute,
(int) local.wSecond,
(int) (local.wMilliseconds * 1000));
return &date_and_time[15 + (return_pointer_to_first_digit != 0)*/
ACE_OS::sprintf (date_and_time,
ACE_LIB_TEXT ("%02d-%02d-%02d %02d:%02d:%02d.%03d"),
(int) local.wYear - 2000,
(int) local.wMonth,
(int) local.wDay,
(int) local.wHour,
(int) local.wMinute,
(int) local.wSecond,
(int) local.wMilliseconds);
return &date_and_time[9];
#else /* UNIX */
ACE_TCHARtimebuf[26]; // This magic number is based on the ctime(3c) man page.
ACE_Time_Valuecur_time = ACE_OS::gettimeofday ();
time_tsecs = cur_time.sec ();
ACE_OS::ctime_r (&secs,
timebuf,
sizeof timebuf);
// date_and_timelen > sizeof timebuf!
ACE_OS::strsncpy (date_and_time,
timebuf,
date_and_timelen);
charyeartmp[5];
ACE_OS::strsncpy (yeartmp,
&date_and_time[20],
5);
chartimetmp[9];
ACE_OS::strsncpy (timetmp,
&date_and_time[11],
9);
ACE_OS::sprintf (&date_and_time[11],
"%s %s.%06ld",
yeartmp,
timetmp,
cur_time.usec ());
date_and_time[33] = '/0';
return &date_and_time[15 + (return_pointer_to_first_digit != 0)];
#endif /* WIN32 */
}
相关推荐
日志系统之ACE日志服务[文].pdf
网上下载的关于ace的文档,全部整理成了word格式,学习tao,中间件的参考资料
将ACE编辑器封装成一个新的JQ版本客户端控件供CtlCodeBox前端调用, 改控件提供sql的格式化及其压缩功能,动态设置编辑器高度行高是否只读等
我们知道,在编辑SQL语句的时候,可以通过各种客户端软件对SQL语句进行格式化,但是我们如果想通过前端来格式化SQL怎么办呢?这时我们可以借助sql-formatter.js插件来实现,具体参考Demo附件(可直接运行,内附ACE...
ACE头文件ACE头文件ACE头文件ACE头文件ACE头文件ACE头文件ACE头文件ACE头文件
ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南
ace封装了c++中的网络通信,能实现跨平台的网络通信开发。本资料包含4大部分:ACE自适配通信环境,上篇:ACE技术论文集,中篇:ACE程序员教程,下篇:ACE应用实例!
音量调整Volume Ace V2.6.4-汉化版
ace前端框架ace前端框架
ACE网络编程ACE网络编程;ACE网络编程ACE网络编程;ACE网络编程ACE网络编程
ACE自适配通信环境中文技术文档 中篇ACE程序员教程 ...译者马维达 第1章 ACE自适配通信环境 ACE自适配通信环境 (Adaptive Communication ... 分布式通信服务名字、日志、时间同步、事件路由和网络锁定等等。
ace bootstrap
aceeditor是一款不错的语法着色在线编辑器,使用js创建,支持40多种常见语言,最初接触是因为liferay的aui团队使用了,我想提取出来,看了源码发现是另外一个叫ace的,没事就找了找,打包分享出来
ace framework ace framework ace framework
ace 格式是通过常规格式转换过程得出的,这样两个文件的基础注释内容是 等效项有关更多详细信息,请参见第8节。ID表(.tab)文件
ACE-5.4.zip ACE5.4源码
ace admin 添加页签模式,只是静态页面。bootstrap-ace_sample版本(优化版)
基于ace的服务器架构,包含了reactor、proactor架构。
ACE-5.7.zip ACE5.7官网源码