Files
Fish (David B. Trout) 0719fe7a2b Add new DATESTAMP logging option (LOGOPT)
Closes #260.
2019-10-07 20:21:27 -07:00

71 lines
2.6 KiB
C

/* LOGGER.H (C) Copyright Jan Jaeger, 2003-2012 */
/* System logger functions */
/* */
/* Released under "The Q Public License Version 1" */
/* (http://www.hercules-390.org/herclic.html) as modifications to */
/* Hercules. */
#ifndef __LOGGER_H__
#define __LOGGER_H__
/*-------------------------------------------------------------------*/
/* Define a default minimum/maximum logger pipe buffer size */
/*-------------------------------------------------------------------*/
#define MIN_LOG_DEFSIZE ( 64 * 1024) // 64K
#define MAX_LOG_DEFSIZE (1 * 1024 * 1024) // 1MB
#if !defined( LOG_DEFSIZE )
#if defined( SSIZE_MAX) && (SSIZE_MAX < MAX_LOG_DEFSIZE)
#define LOG_DEFSIZE SSIZE_MAX
#else
#define LOG_DEFSIZE MAX_LOG_DEFSIZE
#endif
#endif
#if defined( LOG_DEFSIZE )
#if LOG_DEFSIZE < MIN_LOG_DEFSIZE
#undef LOG_DEFSIZE
#define LOG_DEFSIZE MIN_LOG_DEFSIZE
#endif
#if LOG_DEFSIZE > MAX_LOG_DEFSIZE
#undef LOG_DEFSIZE
#define LOG_DEFSIZE MAX_LOG_DEFSIZE
#endif
#endif
/*-------------------------------------------------------------------*/
/* log message logging facility */
/*-------------------------------------------------------------------*/
#define LOG_NOBLOCK 0 // log_read() block option
#define LOG_BLOCK 1 // log_read() block option
LOGR_DLL_IMPORT void logger_init ();
LOGR_DLL_IMPORT int log_read ( char** msg, int* msgidx, int block );
LOGR_DLL_IMPORT int log_line ( int linenumber );
LOGR_DLL_IMPORT void log_sethrdcpy ( const char* filename );
LOGR_DLL_IMPORT void log_wakeup ( void* arg );
LOGR_DLL_IMPORT char* log_dsphrdcpy ();
LOGR_DLL_IMPORT int logger_isactive ();
#define TIMESTAMPLOG (!sysblk.logoptnotime)
#define DATESTAMPLOG (!sysblk.logoptnodate)
#define STAMPLOG (TIMESTAMPLOG || DATESTAMPLOG)
LOGR_DLL_IMPORT void logger_timestamped_logfile_write( const void* pBuff, size_t nBytes );
#if !defined( _MSVC_ )
LOGR_DLL_IMPORT void logger_unredirect();
#endif
/*-------------------------------------------------------------------*/
extern int logger_syslogfd[2]; // logger pipe file descriptors
#define LOG_READ 0 // read end of logger pipe
#define LOG_WRITE 1 // write end of logger pipe
/*-------------------------------------------------------------------*/
#endif /* __LOGGER_H__ */