调整ACE日志时间输出格式
来源:互联网 发布:微博股票组合数据说明 编辑:程序博客网 时间:2024/05/17 22:12
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日志时间输出格式
- 调整ACE日志时间输出格式
- Python日志格式输出与时间格式
- ACE 输出日志
- ACE 日志输出
- 调整了日志格式
- mysql输出格式调整
- Oracle调整输出格式
- ACE 输出日志到文件
- ace日志多种输出方式
- NSDateFormatter 调整时间格式
- C#调整时间格式
- [ios]调整时间格式
- dorado7时间格式调整
- ACE的日志输出之小见
- ACE日志输出的几种重定向方式
- ACE日志输出的几种重定向方式
- log4j 日志输出格式
- CSDN的Blog有进步,但还是存在不足
- 写在地震次日——愿:人民平安,祖国强盛,社会法治,政治民主,政府清廉高效。
- 情牵灾民
- override 与new 的区别
- 高级汇编语言技术
- 调整ACE日志时间输出格式
- ASP.NET页面打印技术的总结
- 判断是否服务器端提交
- SQL注入过滤
- 将GUI和游戏引擎进行结合
- 用Java开发Linux GUI应用
- 使用J2SE1.4开发CORBA程序(一)
- 四川512 7.8级 地震图片
- windows2003计划任务不能启动,"指定的错误是:0x80070005: 拒绝访问"