client-c  0.8.1
kaa_log.h File Reference

Simple logger for Kaa C Endpoint. More...

+ Include dependency graph for kaa_log.h:

Go to the source code of this file.

Macros

#define KAA_LOG_LEVEL_NONE   0
 
#define KAA_LOG_LEVEL_FATAL   1
 
#define KAA_LOG_LEVEL_ERROR   2
 
#define KAA_LOG_LEVEL_WARN   3
 
#define KAA_LOG_LEVEL_INFO   4
 
#define KAA_LOG_LEVEL_DEBUG   5
 
#define KAA_LOG_LEVEL_TRACE   6
 
#define KAA_MAX_LOG_LEVEL   KAA_LOG_LEVEL_TRACE
 
#define KAA_LOG_LEVEL_FATAL_ENABLED   (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_FATAL)
 
#define KAA_LOG_LEVEL_ERROR_ENABLED   (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_ERROR)
 
#define KAA_LOG_LEVEL_WARN_ENABLED   (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_WARN)
 
#define KAA_LOG_LEVEL_INFO_ENABLED   (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_INFO)
 
#define KAA_LOG_LEVEL_DEBUG_ENABLED   (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_DEBUG)
 
#define KAA_LOG_LEVEL_TRACE_ENABLED   (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_TRACE)
 
#define KAA_LOGGER_T
 Kaa logger type. More...
 
#define KAA_LOG_FATAL(logger, err,...)   kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_FATAL, err, __VA_ARGS__)
 
#define KAA_LOG_ERROR(logger, err,...)   kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_ERROR, err, __VA_ARGS__)
 
#define KAA_LOG_WARN(logger, err,...)   kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_WARN, err, __VA_ARGS__)
 
#define KAA_LOG_INFO(logger, err,...)   kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_INFO, err, __VA_ARGS__)
 
#define KAA_LOG_DEBUG(logger, err,...)   kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_DEBUG, err, __VA_ARGS__)
 
#define KAA_LOG_TRACE(logger, err,...)   kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_TRACE, err, __VA_ARGS__)
 
#define KAA_LOG_TRACE_LDB(...)
 
#define KAA_TRACE_IN(logger)   KAA_LOG_TRACE(logger, KAA_ERR_NONE, "--> %s()", __FUNCTION__)
 
#define KAA_TRACE_OUT(logger)   KAA_LOG_TRACE(logger, KAA_ERR_NONE, "<-- %s()", __FUNCTION__)
 

Typedefs

typedef struct kaa_logger_t kaa_logger_t
 
typedef uint8_t kaa_log_level_t
 Log level type. More...
 

Functions

kaa_error_t kaa_log_create (kaa_logger_t **logger_p, size_t buffer_size, kaa_log_level_t max_log_level, FILE *sink)
 Creates and initializes a logger instance. More...
 
kaa_error_t kaa_log_destroy (kaa_logger_t *logger)
 Deinitializes and destroys the logger instance. More...
 
kaa_log_level_t kaa_get_max_log_level (const kaa_logger_t *self)
 Retrieves the current log level. More...
 
kaa_error_t kaa_set_max_log_level (kaa_logger_t *self, kaa_log_level_t max_log_level)
 Sets the maximum log level. More...
 
kaa_error_t kaa_log_set_sink (kaa_logger_t *self, FILE *sink)
 Sets user sink for log output. More...
 
void kaa_log_write (kaa_logger_t *self, const char *source_file, int lineno, kaa_log_level_t log_level, kaa_error_t error_code, const char *format,...)
 Compiles a log message and puts it into the sink. More...
 

Detailed Description

Simple logger for Kaa C Endpoint.

Copyright 2014-2016 CyberVision, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Supports runtime limitation of the maximum log level to be logged. Expects externally provided and managed valid FILE* reference to log data to. Not thread safe.

Definition in file kaa_log.h.

Macro Definition Documentation

#define KAA_LOG_DEBUG (   logger,
  err,
  ... 
)    kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_DEBUG, err, __VA_ARGS__)

Definition at line 175 of file kaa_log.h.

#define KAA_LOG_ERROR (   logger,
  err,
  ... 
)    kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_ERROR, err, __VA_ARGS__)

Definition at line 157 of file kaa_log.h.

#define KAA_LOG_FATAL (   logger,
  err,
  ... 
)    kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_FATAL, err, __VA_ARGS__)

Definition at line 151 of file kaa_log.h.

#define KAA_LOG_INFO (   logger,
  err,
  ... 
)    kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_INFO, err, __VA_ARGS__)

Definition at line 169 of file kaa_log.h.

#define KAA_LOG_LEVEL_DEBUG   5

Use to log detailed information on the logic flow through the system

Definition at line 49 of file kaa_log.h.

#define KAA_LOG_LEVEL_DEBUG_ENABLED   (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_DEBUG)

Definition at line 62 of file kaa_log.h.

#define KAA_LOG_LEVEL_ERROR   2

Use for runtime errors or unexpected conditions that the program might gracefully recover from

Definition at line 43 of file kaa_log.h.

#define KAA_LOG_LEVEL_ERROR_ENABLED   (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_ERROR)

Definition at line 59 of file kaa_log.h.

#define KAA_LOG_LEVEL_FATAL   1

Use for severe errors that cause premature program termination

Definition at line 41 of file kaa_log.h.

#define KAA_LOG_LEVEL_FATAL_ENABLED   (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_FATAL)

Definition at line 58 of file kaa_log.h.

#define KAA_LOG_LEVEL_INFO   4

Use for important or interesting runtime events that help understanding what the program is doing

Definition at line 47 of file kaa_log.h.

#define KAA_LOG_LEVEL_INFO_ENABLED   (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_INFO)

Definition at line 61 of file kaa_log.h.

#define KAA_LOG_LEVEL_NONE   0

Use as the max log level to switch logging off

Definition at line 39 of file kaa_log.h.

#define KAA_LOG_LEVEL_TRACE   6

Use to log most detailed information intended for development and debugging purposes only

Definition at line 51 of file kaa_log.h.

#define KAA_LOG_LEVEL_TRACE_ENABLED   (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_TRACE)

Definition at line 63 of file kaa_log.h.

#define KAA_LOG_LEVEL_WARN   3

Use for unexpected or undesirable runtime conditions that are not necessarily affecting the program

Definition at line 45 of file kaa_log.h.

#define KAA_LOG_LEVEL_WARN_ENABLED   (KAA_MAX_LOG_LEVEL >= KAA_LOG_LEVEL_WARN)

Definition at line 60 of file kaa_log.h.

#define KAA_LOG_TRACE (   logger,
  err,
  ... 
)    kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_TRACE, err, __VA_ARGS__)

Definition at line 181 of file kaa_log.h.

#define KAA_LOG_TRACE_LDB (   ...)

Definition at line 189 of file kaa_log.h.

#define KAA_LOG_WARN (   logger,
  err,
  ... 
)    kaa_log_write(logger, __FILE__, __LINE__, KAA_LOG_LEVEL_WARN, err, __VA_ARGS__)

Definition at line 163 of file kaa_log.h.

#define KAA_LOGGER_T

Kaa logger type.

Definition at line 70 of file kaa_log.h.

#define KAA_MAX_LOG_LEVEL   KAA_LOG_LEVEL_TRACE

Use KAA_LOG_TRACE as the max log level by default

Definition at line 55 of file kaa_log.h.

#define KAA_TRACE_IN (   logger)    KAA_LOG_TRACE(logger, KAA_ERR_NONE, "--> %s()", __FUNCTION__)

Definition at line 195 of file kaa_log.h.

#define KAA_TRACE_OUT (   logger)    KAA_LOG_TRACE(logger, KAA_ERR_NONE, "<-- %s()", __FUNCTION__)

Definition at line 196 of file kaa_log.h.

Typedef Documentation

typedef uint8_t kaa_log_level_t

Log level type.

Definition at line 77 of file kaa_log.h.

typedef struct kaa_logger_t kaa_logger_t

Definition at line 71 of file kaa_log.h.

Function Documentation

kaa_log_level_t kaa_get_max_log_level ( const kaa_logger_t self)

Retrieves the current log level.

Parameters
[in]selfPointer to a logger.
Returns
Log level. Returns KAA_LOG_NONE if this is NULL.
kaa_error_t kaa_log_create ( kaa_logger_t **  logger_p,
size_t  buffer_size,
kaa_log_level_t  max_log_level,
FILE *  sink 
)

Creates and initializes a logger instance.

Parameters
[in,out]loggerAddress of a pointer to the newly created logger.
[in]buffer_sizeSize of the log message buffer to allocate to the logger.
[in]max_log_levelMax log level to be used. Use KAA_LOG_NONE to switch the logger off.
[in]sinkValid, opened file to write logs to. Will use stdout if NULL is provided.
Returns
Error code.
kaa_error_t kaa_log_destroy ( kaa_logger_t logger)

Deinitializes and destroys the logger instance.

Parameters
[in,out]loggerPointer to a logger.
Returns
Error code.
kaa_error_t kaa_log_set_sink ( kaa_logger_t self,
FILE *  sink 
)

Sets user sink for log output.

Parameters
[in]selfPointer to a logger.
[in]sinkPointer to FILE structure where logs will be written to.
Returns
Error code.
void kaa_log_write ( kaa_logger_t self,
const char *  source_file,
int  lineno,
kaa_log_level_t  log_level,
kaa_error_t  error_code,
const char *  format,
  ... 
)

Compiles a log message and puts it into the sink.

The message format is as follows:

YYYY/MM/DD HH:MM:SS [LOG LEVEL] [FILE:LINENO] (ERROR_CODE) - MESSAGE

NOTE: Do not use directly. Use one of KAA_LOG_FATAL, KAA_LOG_ERROR, KAA_LOG_WARN, KAA_LOG_INFO, KAA_LOG_DEBUG, KAA_LOG_TRACE macros instead.

The log message gets truncated if it is longer than buffer_size specified to kaa_log_create.

Parameters
[in]selfPointer to a logger.
[in]source_fileThe source file that the message is logged from.
[in]linenoThe line number in the source file that the message is logged from.
[in]log_levelThe message log level to log with.
[in]error_codeThe message error code.
[in]formatThe format of the message to log.
kaa_error_t kaa_set_max_log_level ( kaa_logger_t self,
kaa_log_level_t  max_log_level 
)

Sets the maximum log level.

Parameters
[in]selfPointer to a logger.
[in]max_log_levelMax log level to be used. Use KAA_LOG_NONE to switch the logger off.
Returns
Error code.