Add systemd script
This commit is contained in:
89
src/tlog.h
Normal file
89
src/tlog.h
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Copyright (C) 2018 Ruilin Peng (Nick) <pymumu@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef TLOG_H
|
||||
#define TLOG_H
|
||||
#include <stdarg.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /*__cplusplus */
|
||||
|
||||
typedef enum {
|
||||
TLOG_DEBUG = 0,
|
||||
TLOG_INFO = 1,
|
||||
TLOG_NOTICE = 2,
|
||||
TLOG_WARN = 3,
|
||||
TLOG_ERROR = 4,
|
||||
TLOG_FATAL = 5,
|
||||
TLOG_END = 6
|
||||
} tlog_level;
|
||||
|
||||
struct tlog_time {
|
||||
int year;
|
||||
int mon;
|
||||
int mday;
|
||||
int hour;
|
||||
int min;
|
||||
int sec;
|
||||
int usec;
|
||||
};
|
||||
|
||||
struct tlog_info {
|
||||
const char *level;
|
||||
const char *file;
|
||||
const char *func;
|
||||
int line;
|
||||
struct tlog_time time;
|
||||
};
|
||||
|
||||
/*
|
||||
Function:Print log
|
||||
level: Current log Levels
|
||||
format: Log formats
|
||||
*/
|
||||
#ifndef BASE_FILE_NAME
|
||||
#define BASE_FILE_NAME __FILE__
|
||||
#endif
|
||||
#define tlog(level, format, ...) tlog_ext(level, BASE_FILE_NAME, __LINE__, __func__, 0, format, ##__VA_ARGS__)
|
||||
|
||||
extern int tlog_ext(tlog_level level, const char *file, int line, const char *func, void *userptr, const char *format, ...) __attribute__((format(printf, 6, 7)));
|
||||
extern int tlog_vext(tlog_level level, const char *file, int line, const char *func, void *userptr, const char *format, va_list ap);
|
||||
|
||||
/* set log level */
|
||||
extern int tlog_setlevel(tlog_level level);
|
||||
|
||||
/* enalbe log to screen */
|
||||
extern void tlog_setlogscreen(int enable);
|
||||
|
||||
/*
|
||||
Function:Initialize log module
|
||||
logdir: Log Output path.
|
||||
logname: Log name.
|
||||
maxlogsize: The maximum size of a single log file.
|
||||
maxlogcount: Number of archived logs.
|
||||
block: Blocked if buffer is not sufficient.
|
||||
buffsize: Buffer size, zero for default (128K)
|
||||
multiwrite: enable multi process write mode.
|
||||
NOTICE: maxlogsize in all prcesses must be same when enable this mode.
|
||||
*/
|
||||
extern int tlog_init(const char *logdir, const char *logname, int maxlogsize, int maxlogcount, int block, int buffsize, int multiwrite);
|
||||
|
||||
extern void tlog_exit(void);
|
||||
|
||||
/*
|
||||
customize log output format
|
||||
steps:
|
||||
1. define format function, function must be defined as tlog_format_func, use snprintf or vsnprintf format log to buffer
|
||||
2. call tlog_reg_format_func to register format function.
|
||||
|
||||
read _tlog_format for example.
|
||||
*/
|
||||
typedef int (*tlog_format_func)(char *buff, int maxlen, struct tlog_info *info, void *userptr, const char *format, va_list ap);
|
||||
extern int tlog_reg_format_func(tlog_format_func func);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /*__cplusplus */
|
||||
#endif // !TLOG_H
|
||||
Reference in New Issue
Block a user