kinetic-c  v0.12.0
Seagate Kinetic Protocol Client Library for C
Macros | Functions | Variables
kinetic_logger.c File Reference
#include "kinetic_logger.h"
#include "kinetic_version_info.h"
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/time.h>
#include <errno.h>
#include <pthread.h>
#include <time.h>

Go to the source code of this file.

Macros

#define BUFFER_SIZE   1024
 
#define BUFFER_MAX_STRLEN   (BUFFER_SIZE-2)
 
#define LOG_INDENT   " "
 
#define BOOL_TO_STRING(_bool)   (_bool) ? "true" : "false"
 

Functions

static bool is_level_enabled (int log_level)
 
static void lock_buffer (void)
 
static void unlock_buffer (void)
 
static void flush_buffer (void)
 
static char * get_buffer (void)
 
static void finish_buffer (void)
 
static void log_protobuf_message (int log_level, const ProtobufCMessage *msg, char *indent)
 
static void log_version_info (void)
 
void KineticLogger_Init (const char *log_file, int log_level)
 
void KineticLogger_Close (void)
 
void KineticLogger_Log (int log_level, const char *message)
 
void KineticLogger_LogPrintf (int log_level, const char *format,...)
 
void KineticLogger_LogLocation (const char *filename, int line, const char *message)
 
void KineticLogger_LogHeader (int log_level, const KineticPDUHeader *header)
 
static void log_proto_level_start (const char *name)
 
static void log_proto_level_end (void)
 
static void log_proto_level_start_array (const char *name, unsigned quantity)
 
static void log_proto_level_end_array (void)
 
static int bytetoa (char *p_buf, uint8_t val)
 
int KineticLogger_ByteArraySliceToCString (char *p_buf, const ByteArray bytes, const int start, const int count)
 
static void LogUnboxed (int log_level, void const *const fieldData, ProtobufCFieldDescriptor const *const fieldDesc, size_t const i, char *log_indent)
 
void KineticLogger_LogProtobuf (int log_level, const Com__Seagate__Kinetic__Proto__Message *msg)
 
void KineticLogger_LogStatus (int log_level, Com__Seagate__Kinetic__Proto__Command__Status *status)
 
void KineticLogger_LogByteArray (int log_level, const char *title, ByteArray bytes)
 
void KineticLogger_LogByteBuffer (int log_level, const char *title, ByteBuffer buffer)
 

Variables

static int KineticLogLevel = -1
 
static FILE * KineticLoggerHandle = NULL
 
static pthread_mutex_t BufferMutex = PTHREAD_MUTEX_INITIALIZER
 
static char Buffer [1024]
 
static char indent [64] = " "
 
static const size_t max_indent = sizeof(indent)-3
 
static int indent_overflow = 0
 

Macro Definition Documentation

#define BUFFER_SIZE   1024

Definition at line 33 of file kinetic_logger.c.

#define BUFFER_MAX_STRLEN   (BUFFER_SIZE-2)

Definition at line 34 of file kinetic_logger.c.

#define LOG_INDENT   " "

Definition at line 168 of file kinetic_logger.c.

#define BOOL_TO_STRING (   _bool)    (_bool) ? "true" : "false"

Definition at line 251 of file kinetic_logger.c.

Function Documentation

static bool is_level_enabled ( int  log_level)
inlinestatic

Definition at line 548 of file kinetic_logger.c.

static void lock_buffer ( void  )
inlinestatic

Definition at line 553 of file kinetic_logger.c.

References BufferMutex.

static void unlock_buffer ( void  )
inlinestatic

Definition at line 558 of file kinetic_logger.c.

References BufferMutex.

static void flush_buffer ( void  )
static

Definition at line 563 of file kinetic_logger.c.

References Buffer, and KineticLoggerHandle.

static char * get_buffer ( void  )
inlinestatic

Definition at line 569 of file kinetic_logger.c.

References Buffer, and lock_buffer().

static void finish_buffer ( void  )
inlinestatic

Definition at line 575 of file kinetic_logger.c.

References flush_buffer(), and unlock_buffer().

static void log_protobuf_message ( int  log_level,
const ProtobufCMessage *  msg,
char *  indent 
)
static
static void log_version_info ( void  )
static
void KineticLogger_Init ( const char *  log_file,
int  log_level 
)
void KineticLogger_Close ( void  )

Definition at line 86 of file kinetic_logger.c.

References KineticLoggerHandle, and KineticLogLevel.

void KineticLogger_Log ( int  log_level,
const char *  message 
)

Definition at line 96 of file kinetic_logger.c.

References KineticLogger_LogPrintf().

void KineticLogger_LogPrintf ( int  log_level,
const char *  format,
  ... 
)
void KineticLogger_LogLocation ( const char *  filename,
int  line,
const char *  message 
)

Definition at line 139 of file kinetic_logger.c.

References KineticLogger_LogPrintf(), and KineticLogLevel.

void KineticLogger_LogHeader ( int  log_level,
const KineticPDUHeader header 
)
static void log_proto_level_start ( const char *  name)
static
static void log_proto_level_end ( void  )
static

Definition at line 185 of file kinetic_logger.c.

References indent, indent_overflow, and KineticLogger_LogPrintf().

static void log_proto_level_start_array ( const char *  name,
unsigned  quantity 
)
static
static void log_proto_level_end_array ( void  )
static

Definition at line 208 of file kinetic_logger.c.

References indent, indent_overflow, and KineticLogger_LogPrintf().

static int bytetoa ( char *  p_buf,
uint8_t  val 
)
static

Definition at line 219 of file kinetic_logger.c.

int KineticLogger_ByteArraySliceToCString ( char *  p_buf,
const ByteArray  bytes,
const int  start,
const int  count 
)

Definition at line 239 of file kinetic_logger.c.

References bytetoa(), and ByteArray::data.

static void LogUnboxed ( int  log_level,
void const *const  fieldData,
ProtobufCFieldDescriptor const *const  fieldDesc,
size_t const  i,
char *  log_indent 
)
static
void KineticLogger_LogProtobuf ( int  log_level,
const Com__Seagate__Kinetic__Proto__Message *  msg 
)
void KineticLogger_LogStatus ( int  log_level,
Com__Seagate__Kinetic__Proto__Command__Status *  status 
)
void KineticLogger_LogByteArray ( int  log_level,
const char *  title,
ByteArray  bytes 
)
void KineticLogger_LogByteBuffer ( int  log_level,
const char *  title,
ByteBuffer  buffer 
)

Variable Documentation

int KineticLogLevel = -1
static

Definition at line 36 of file kinetic_logger.c.

FILE* KineticLoggerHandle = NULL
static

Definition at line 37 of file kinetic_logger.c.

pthread_mutex_t BufferMutex = PTHREAD_MUTEX_INITIALIZER
static

Definition at line 38 of file kinetic_logger.c.

char Buffer[1024]
static

Definition at line 39 of file kinetic_logger.c.

char indent[64] = " "
static

Definition at line 169 of file kinetic_logger.c.

const size_t max_indent = sizeof(indent)-3
static

Definition at line 170 of file kinetic_logger.c.

int indent_overflow = 0
static

Definition at line 171 of file kinetic_logger.c.