#ifndef OSCAM_LOG_H_ #define OSCAM_LOG_H_ #ifndef MODULE_LOG_PREFIX #define MODULE_LOG_PREFIX NULL #endif int32_t cs_init_log(void); void cs_reopen_log(void); int32_t cs_open_logfiles(void); void cs_disable_log(int8_t disabled); void cs_reinit_loghist(uint32_t size); void cs_log_txt(const char *log_prefix, const char *fmt, ...) __attribute__((format(printf, 2, 3))); void cs_log_hex(const char *log_prefix, const uint8_t *buf, int32_t n, const char *fmt, ...) __attribute__((format(printf, 4, 5))); #define cs_log(fmt, params...) cs_log_txt(MODULE_LOG_PREFIX, fmt, ##params) #define cs_log_dump(buf, n, fmt, params...) cs_log_hex(MODULE_LOG_PREFIX, buf, n, fmt, ##params) #define cs_log_dbg(mask, fmt, params...) do { if (config_enabled(WITH_DEBUG) && ((mask) & cs_dblevel)) cs_log_txt(MODULE_LOG_PREFIX, fmt, ##params); } while(0) #define cs_log_dump_dbg(mask, buf, n, fmt, params...) do { if (config_enabled(WITH_DEBUG) && ((mask) & cs_dblevel)) cs_log_hex(MODULE_LOG_PREFIX, buf , n, fmt, ##params); } while(0) int32_t cs_init_statistics(void); void cs_statistics(struct s_client *client); void log_free(void); // Compatability with older function names. If your code uses these // it must migrate to the new names using find + replace // *** DO NOT USE OLD NAMES NEW CODE! *** #define cs_debug_mask cs_log_dbg #define rdr_debug_mask rdr_log_dbg #define rdr_debug_mask_sensitive rdr_log_dbg_sensitive #define cs_ddump_mask cs_log_dump_dbg #define rdr_ddump_mask rdr_log_dump_dbg #if defined(WEBIF) || defined(MODULE_MONITOR) extern LLIST *log_history; struct s_log_history { char *txt; uint64_t counter; }; #endif #endif