1#ifndef _LOG_H_ 2#define _LOG_H_ 3 4#include "server.h" 5 6ssize_t write_all(int fd, const void* buf, size_t count); 7 8/* Close fd and _try_ to get a /dev/null for it instead. 9 * Returns 0 on success and -1 on failure (fd gets closed in all cases) 10 */ 11int openDevNull(int fd); 12 13int open_logfile_or_pipe(server *srv, const char* logfile); 14 15int log_error_open(server *srv); 16int log_error_close(server *srv); 17int log_error_write(server *srv, const char *filename, unsigned int line, const char *fmt, ...); 18int log_error_write_multiline_buffer(server *srv, const char *filename, unsigned int line, buffer *multiline, const char *fmt, ...); 19int log_error_cycle(server *srv); 20 21//- Sungmin add 22int log_sys_open(server *srv); 23int log_sys_close(server *srv); 24int log_sys_write(server *srv, const char *fmt, ...); 25 26//void dprintf_impl(const char* date,const char* time,const char* file,const char* func, size_t line, int enable, const char* fmt, ...); 27void dprintf_impl(const char* file,const char* func, size_t line, int enable, const char* fmt, ...); 28#define NDEBUG 29#ifndef NDEBUG 30//#define WHERESTR "[%s][%s][%s] <<%s>>, line %i: " 31#define WHERESTR "[%25s] <<%38s>>, line %i: " 32//#define WHEREARG __DATE__,__TIME__,__FILE__,__func__,__LINE__ 33#define WHEREARG __FILE__,__func__,__LINE__ 34//#define Cdbg(fmt, ...) fprintf(stderr,WHERESTR fmt "\n", WHEREARG , __VA_ARGS__) 35 36#define Cdbg(enable, ...) dprintf_impl(WHEREARG, enable, __VA_ARGS__) 37#else 38#define Cdbg(enable, ...) // define to nothing in release mode 39#endif 40 41 42#endif 43