Brief description of class still missing. More...
#include <Log.h>
Public Member Functions | |
| Log (FILE *stream=0) | |
| void | setFile (const char *fileName) |
| ~Log () | |
Static Public Member Functions | |
| static void | setVerbosity (int v) |
| static FILE * | stream () |
| static void | timeStamp (char *buffer32) |
| static int | verbosity () |
| static void | write (int level, const char *cformat,...) |
| static void | writeNoMutex (int level, const char *cformat,...) |
| static void | writeNoStamp (int level, const char *cformat,...) |
Brief description of class still missing.
Full description of class still missing
| GpCoreTools::Log::Log | ( | FILE * | stream = 0 | ) |
Init log to stream. If null, the default stderr is not changed.
References GpCoreTools::CoreApplication::instance(), and stream().
{
#ifdef SYSLOG
openlog (CoreApplication::instance()->applicationName(), LOG_NDELAY | LOG_PID, LOG_DAEMON);
#else
if(stream) {
_stream=stream;
}
#endif
}
Description of destructor still missing
{
#ifdef SYSLOG
closelog();
#else
if(_stream!=stderr && _stream!=stdin) {
fclose(_stream);
}
#endif
}
| void GpCoreTools::Log::setFile | ( | const char * | fileName | ) |
Description of constructor still missing
References write().
Referenced by main().
{
#ifndef SYSLOG
if(!fileName) {
return;
}
if(_stream!=stderr && _stream!=stdin) {
fclose(_stream);
}
int fd=open(fileName, O_WRONLY | O_NONBLOCK | O_CREAT | O_APPEND, S_IRWXU | S_IRGRP | S_IROTH);
if(fd>=0) {
_stream=fdopen(fd, "a");
assert(_stream);
} else {
_stream=stderr;
write(0, "failed to open log file %s\n",fileName);
}
#endif
}
| static void GpCoreTools::Log::setVerbosity | ( | int | v | ) | [inline, static] |
Referenced by GpCoreTools::CoreApplication::CoreApplication().
{_verbosity=v;}
| static FILE* GpCoreTools::Log::stream | ( | ) | [inline, static] |
Referenced by GpCoreTools::DynamicBuffer::debugBuffer(), GpCoreTools::DynamicBuffer::debugEndIgnoreByte(), GpCoreTools::DynamicBuffer::debugIgnoreByte(), and Log().
{return _stream;}
| void GpCoreTools::Log::timeStamp | ( | char * | buffer32 | ) | [static] |
Referenced by write(), and writeNoMutex().
{
time_t t=time(0);
strftime(buffer32, 32, "%a %b %d %H:%M:%S %Y: ", gmtime(&t));
}
| static int GpCoreTools::Log::verbosity | ( | ) | [inline, static] |
{return _verbosity;}
| void GpCoreTools::Log::write | ( | int | level, |
| const char * | cformat, | ||
| ... | |||
| ) | [static] |
References timeStamp().
Referenced by GpCoreTools::CoreApplication::checkOptionArg(), GpCoreTools::DaemonApplication::close(), GpCoreTools::CoreApplication::CoreApplication(), GpCoreTools::DynamicBuffer::debugBuffer(), GpCoreTools::DynamicBuffer::debugIgnoreByte(), GpCoreTools::EventStream::event(), GpCoreTools::UnixServerStream::event(), GpCoreTools::TcpServerStream::event(), GpCoreTools::EventLoop::exec(), GpCoreTools::DaemonApplication::fork(), GpCoreTools::Address::identifyMe(), GpCoreTools::MessageClassIdHeader::isValid(), GpCoreTools::Leds::Leds(), GpCoreTools::UdpServerStream::listen(), GpCoreTools::UnixServerStream::listen(), GpCoreTools::TcpServerStream::listen(), GpCoreTools::CoreApplication::osSignal(), GpCoreTools::DynamicBuffer::read(), GpCoreTools::UdpServerStream::send(), setFile(), GpCoreTools::DaemonApplication::start(), GpCoreTools::TcpServerStream::TcpServerStream(), GpCoreTools::UdpServerStream::UdpServerStream(), GpCoreTools::UnixServerStream::UnixServerStream(), GpCoreTools::InfiniteLoop::wait(), and GpCoreTools::InfiniteLoop::~InfiniteLoop().
{
if(level<=_verbosity) {
va_list argptr;
va_start(argptr, cformat);
#ifdef SYSLOG
vsyslog(LOG_INFO, cformat, argptr);
#else
// Print time stamp
char timeBuf[32];
timeStamp(timeBuf);
pthread_mutex_lock(&_mutex);
// Print message
unsigned int n=strlen(timeBuf);
if(fwrite(timeBuf, 1, n, _stream)==n) {
vfprintf(_stream, cformat, argptr);
fflush(_stream);
}
pthread_mutex_unlock(&_mutex);
#endif
va_end(argptr);
}
}
| void GpCoreTools::Log::writeNoMutex | ( | int | level, |
| const char * | cformat, | ||
| ... | |||
| ) | [static] |
Used only when no mutex can be used, for instance during signaled exceptions.
References timeStamp().
Referenced by GpCoreTools::DaemonApplication::childInterrupted().
{
if(level<=_verbosity) {
va_list argptr;
va_start(argptr, cformat);
#ifdef SYSLOG
vsyslog(LOG_INFO, cformat, argptr);
#else
// Print time stamp
char timeBuf[32];
timeStamp(timeBuf);
unsigned int n=strlen(timeBuf);
// Print message
if(fwrite(timeBuf, 1, n, _stream)==n) {
vfprintf(_stream, cformat, argptr);
fflush(_stream);
}
#endif
va_end(argptr);
}
}
| void GpCoreTools::Log::writeNoStamp | ( | int | level, |
| const char * | cformat, | ||
| ... | |||
| ) | [static] |
Referenced by GpCoreTools::CoreApplication::osSignal().
{
if(level<=_verbosity) {
va_list argptr;
va_start(argptr, cformat);
#ifdef SYSLOG
vsyslog(LOG_INFO, cformat, argptr);
#else
// Print message
pthread_mutex_lock(&_mutex);
vfprintf(_stream, cformat, argptr);
fflush(_stream);
pthread_mutex_unlock(&_mutex);
#endif
va_end(argptr);
}
}