DRAMA C++ Intro   Class Hierarchy   Alphabetical List of types   List of Classes   File List   Class Member Index   File Members Index   Related Pages  

Classes | Macros | Functions
gitlogger.h File Reference
#include "DitsTypes.h"
#include "Ers.h"
#include <stdio.h>
#include <string>
#include <DitsFix.h>

Go to the source code of this file.

Classes

class  GitLogger___Time
 
class  GitLogger
 Implementation of a Class supporting Logging with a DRAMA GIT Task. More...
 

Macros

#define GIT_LOG_ALL   0xFFFFFFFF
 Log everything. More...
 
#define GIT_LOG_STARTUP   0x01
 Log Task startup messages. More...
 
#define GIT_LOG_ERRORS   0x02
 Log Ers and action completion errors. More...
 
#define GIT_LOG_ACTENT   0x04
 Log Action entry. More...
 
#define GIT_LOG_ACTEXIT   0x08
 Log Action exit messages. More...
 
#define GIT_LOG_INST   0x10
 Log instument specific log messages. More...
 
#define GIT_LOG_MSG   0x20
 Log MsgOut messages. More...
 
#define GIT_LOG_DEBUG   0x40
 Log Debug messages. More...
 
#define GIT_LOG_COMMS   0x80
 Log DRAMA communications messages. More...
 
#define GIT_LOG_USER1   0x100
 User defined logging level 1. More...
 
#define GIT_LOG_USER2   0x200
 User defined logging level 2. More...
 
#define GIT_LOG_USER3   0x400
 User defined logging level 3. More...
 
#define GIT_LOG_USER4   0x800
 User defined logging level 4. More...
 
#define GIT_LOG_ARGS   0x1000
 Log entry and exit arguments if logging entry and exit. More...
 
#define GIT_LOG_ALWAYS   0x40000
 Always log the message. More...
 
#define GIT_LOG_ALWAYS_S   0x80000
 Always log the messages, including to the screen. More...
 
#define LOG_ALL   GIT_LOG_ALL
 Log everything. More...
 
#define LOG_STARTUP   GIT_LOG_STARTUP
 Log Task startup messages. More...
 
#define LOG_ERRORS   GIT_LOG_ERRORS
 Log Ers and action completion errors. More...
 
#define LOG_ACTENT   GIT_LOG_ACTENT
 Log Action entry. More...
 
#define LOG_ACTEXIT   GIT_LOG_ACTEXIT
 Log Action exit messages. More...
 
#define LOG_INST   GIT_LOG_INST
 Log instument specific log messages. More...
 
#define LOG_MSG   GIT_LOG_MSG
 Log MsgOut messages. More...
 
#define LOG_DEBUG   GIT_LOG_DEBUG
 Log Debug messages. More...
 
#define LOG_COMMS   GIT_LOG_COMMS
 Log DRAMA communications messages. More...
 
#define LOG_USER1   GIT_LOG_USER1
 User defined logging level 1. More...
 
#define LOG_USER2   GIT_LOG_USER2
 User defined logging level 2. More...
 
#define LOG_USER3   GIT_LOG_USER3
 User defined logging level 3. More...
 
#define LOG_USER4   GIT_LOG_USER4
 User defined logging level 4. More...
 
#define LOG_ARGS   GIT_LOG_ARGS
 Log entry and exit arguments if logging entry and exit. More...
 
#define LOG_ALWAYS   GIT_LOG_ALWAYS
 Always log the message. More...
 
#define LOG_ALWAYS_S   GIT_LOG_ALWAYS_S
 Always log the messages, including to the screen. More...
 
#define GIT_LOGGER_M_NO_FSYNC   1 /* If set, don't fsync on flush */
 C interface to tuning GitLogger. More...
 
#define GIT_LOGGER_M_FLUSH_ALWAYS   2 /* If set, flush on each event */
 
#define GIT_LOGGER_M_LOG_FLUSH_OFF
 
#define GIT_LOGGER_M_SYNC_THRD_RUN   8 /* If set - run the sync thread */
 
#define GIT_LOGGER_M_SYNC_THRD_IS_RNNNG
 

Functions

FILE * GitLoggerFile (StatusType *status)
 C interface to fetching the log file pointer. More...
 
void GitLoggerFlushAlways (int flag, StatusType *status)
 C interface to setting the GitLogger flush flag. More...
 
void GitLoggerTune (unsigned NewSettings, unsigned *OldSettings, StatusType *status)
 
void GitLoggerInit (const char *system, StatusType *status)
 C interface to enabling a Git logger. More...
 

Macro Definition Documentation

#define GIT_LOG_ACTENT   0x04

Log Action entry.

#define GIT_LOG_ACTEXIT   0x08

Log Action exit messages.

#define GIT_LOG_ALL   0xFFFFFFFF

Log everything.

#define GIT_LOG_ALWAYS   0x40000

Always log the message.

#define GIT_LOG_ALWAYS_S   0x80000

Always log the messages, including to the screen.

#define GIT_LOG_ARGS   0x1000

Log entry and exit arguments if logging entry and exit.

#define GIT_LOG_COMMS   0x80

Log DRAMA communications messages.

#define GIT_LOG_DEBUG   0x40

Log Debug messages.

#define GIT_LOG_ERRORS   0x02

Log Ers and action completion errors.

#define GIT_LOG_INST   0x10

Log instument specific log messages.

#define GIT_LOG_MSG   0x20

Log MsgOut messages.

#define GIT_LOG_STARTUP   0x01

Log Task startup messages.

#define GIT_LOG_USER1   0x100

User defined logging level 1.

#define GIT_LOG_USER2   0x200

User defined logging level 2.

#define GIT_LOG_USER3   0x400

User defined logging level 3.

#define GIT_LOG_USER4   0x800

User defined logging level 4.

#define GIT_LOGGER_M_LOG_FLUSH_OFF
Value:
4 /* If set, don't flush on LogFlush() events,
normally DitsMsgOut events */
#define GIT_LOGGER_M_NO_FSYNC   1 /* If set, don't fsync on flush */

C interface to tuning GitLogger.

NewSetting is the new settings to apply. If OldSettings is non-zero, the previous settings are written here.

This function allows us to tune GitLogger effiency vs other events. By default - GitLoggger will flush and fsync() the log file each time DitsMsgReceive() returns (LogFlush() events). We can turn this off by setting the GIT_LOGGER_M_LOG_FLUSH_OFF flag. Alternatively, we could do the STDIO flushing but turn the (rather expensive) fsync() call off using GIT_LOGGER_M_LOG_NO_FSYNC (This defaults to being set under Linux, where fsync() is expensive). We could also ensure that every message is flushed immediately by setting GIT_LOGGER_M_FLUSH_ALWAYS.

#define GIT_LOGGER_M_SYNC_THRD_IS_RNNNG
Value:
16 /* Return only - if set - sync
thread is running */
#define LOG_ACTENT   GIT_LOG_ACTENT

Log Action entry.

#define LOG_ACTEXIT   GIT_LOG_ACTEXIT

Log Action exit messages.

#define LOG_ALL   GIT_LOG_ALL

Log everything.

#define LOG_ALWAYS   GIT_LOG_ALWAYS

Always log the message.

#define LOG_ALWAYS_S   GIT_LOG_ALWAYS_S

Always log the messages, including to the screen.

#define LOG_ARGS   GIT_LOG_ARGS

Log entry and exit arguments if logging entry and exit.

#define LOG_COMMS   GIT_LOG_COMMS

Log DRAMA communications messages.

#define LOG_DEBUG   GIT_LOG_DEBUG

Log Debug messages.

#define LOG_ERRORS   GIT_LOG_ERRORS

Log Ers and action completion errors.

#define LOG_INST   GIT_LOG_INST

Log instument specific log messages.

#define LOG_MSG   GIT_LOG_MSG

Log MsgOut messages.

#define LOG_STARTUP   GIT_LOG_STARTUP

Log Task startup messages.

#define LOG_USER1   GIT_LOG_USER1

User defined logging level 1.

#define LOG_USER2   GIT_LOG_USER2

User defined logging level 2.

#define LOG_USER3   GIT_LOG_USER3

User defined logging level 3.

#define LOG_USER4   GIT_LOG_USER4

User defined logging level 4.

Function Documentation

FILE * GitLoggerFile ( StatusType *  status)

C interface to fetching the log file pointer.

This C interface returns the log file FILE pointer, allowing direct writes to the log file etc. Please use with care. Returns NULL if the file is not available (normally with status set bad).

void GitLoggerFlushAlways ( int  flag,
StatusType *  status 
)

C interface to setting the GitLogger flush flag.

This C interface allows the flag which determines if the log file should be flushed after every write to be set. Set flag to true (non-zero) to enable this, false (0) to disable it

Depreciated: Use GitLoggerTune() instead.

void GitLoggerInit ( const char *  system,
StatusType *  status 
)

C interface to enabling a Git logger.

This C interface allows the GIT logger to be added to a DRAMA task which is otherwise written in C. It invokes the GitLogger:: constructor with the specified system and status arguments.


Click here for the DRAMA home page and here for the AAO home page.

For more information, contact tjf@aao.gov.au 

Generated on Mon Feb 22 2016 13:58:31 for AAO DRAMA C++ Interfaces by doxygen 1.8.10