- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
long GetMicroseconds();
CTvoid cLog::GetTime (char * acLocal, time_t tTime)
{
struct tm ltLocalTime;
struct tm * ptLocalTime;
tTime = time (NULL);
ptLocalTime = localtime_r (&tTime, <LocalTime);
sprintf(acLocal,"%04d%02d%02d %02d%02d%02d-%06ld",
ptLocalTime->tm_year+1900,
ptLocalTime->tm_mon+1,
ptLocalTime->tm_mday,
ptLocalTime->tm_hour,
ptLocalTime->tm_min,
ptLocalTime->tm_sec,
GetMicroseconds());
}
long GetMicroseconds()
{
struct timeval timeVal;
if (0 == gettimeofday( &timeVal, NULL ))
return timeVal.tv_usec;
return -1;
}
cLog::__Write(...)
{
/* ... */
tTime = time(NULL);
GetTime (acDataTime, tTime);
/* ... */
}
R&D дали задание добавить микросекунды ко всем таймстемпам в логах.
сказано - сделано.
ну ведь никто не говорил что таймстемпы должны быть еще и консистентными.
ЗЫ ну и time() надо вызвать раза два-три - для надёжности.