|
| 1 | +use crate::LogLevel; |
| 2 | +use crate::raw; |
| 3 | +use std::ffi::CString; |
| 4 | +use std::ptr; |
| 5 | + |
| 6 | +pub(crate) fn log_internal(ctx: *mut raw::RedisModuleCtx, level: LogLevel, message: &str) { |
| 7 | + if cfg!(feature = "test") { |
| 8 | + return; |
| 9 | + } |
| 10 | + let level = CString::new(level.as_ref()).unwrap(); |
| 11 | + let fmt = CString::new(message).unwrap(); |
| 12 | + unsafe { raw::RedisModule_Log.unwrap()(ctx, level.as_ptr(), fmt.as_ptr()) } |
| 13 | +} |
| 14 | + |
| 15 | +/// Log a message to the Redis log with the given log level, without |
| 16 | +/// requiring a context. This prevents Redis from including the module |
| 17 | +/// name in the logged message. |
| 18 | +pub fn log(level: LogLevel, message: &str) { |
| 19 | + log_internal(ptr::null_mut(), level, message); |
| 20 | +} |
| 21 | + |
| 22 | +/// Log a message to the Redis log with DEBUG log level. |
| 23 | +pub fn log_debug(message: &str) { |
| 24 | + log(LogLevel::Debug, message); |
| 25 | +} |
| 26 | + |
| 27 | +/// Log a message to the Redis log with NOTICE log level. |
| 28 | +pub fn log_notice(message: &str) { |
| 29 | + log(LogLevel::Debug, message); |
| 30 | +} |
| 31 | + |
| 32 | +/// Log a message to the Redis log with VERBOSE log level. |
| 33 | +pub fn log_verbose(message: &str) { |
| 34 | + log(LogLevel::Debug, message); |
| 35 | +} |
| 36 | + |
| 37 | +/// Log a message to the Redis log with WARNING log level. |
| 38 | +pub fn log_warning(message: &str) { |
| 39 | + log(LogLevel::Debug, message); |
| 40 | +} |
0 commit comments