mirror of
https://github.com/fluencelabs/redis
synced 2025-03-27 12:51:04 +00:00
Add RedisModule_Log() logging API function.
This commit is contained in:
parent
b507289750
commit
715794b829
25
src/module.c
25
src/module.c
@ -2768,6 +2768,30 @@ void RM_EmitAOF(RedisModuleIO *io, const char *cmdname, const char *fmt, ...) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------------
|
||||||
|
* Logging
|
||||||
|
* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Produces a log message to the standard Redis log. */
|
||||||
|
void RM_Log(RedisModuleCtx *ctx, int level, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
char msg[LOG_MAX_LEN];
|
||||||
|
size_t name_len;
|
||||||
|
|
||||||
|
if ((level&0xff) < server.verbosity) return;
|
||||||
|
if (!ctx->module) return; /* Can only log if module is initialized */
|
||||||
|
|
||||||
|
name_len = snprintf(msg, sizeof(msg),"%s: ", ctx->module->name);
|
||||||
|
|
||||||
|
va_start(ap, fmt);
|
||||||
|
vsnprintf(msg + name_len, sizeof(msg) - name_len, fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
|
||||||
|
serverLogRaw(level,msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------
|
||||||
* Modules API internals
|
* Modules API internals
|
||||||
* -------------------------------------------------------------------------- */
|
* -------------------------------------------------------------------------- */
|
||||||
@ -2886,6 +2910,7 @@ void moduleRegisterCoreAPI(void) {
|
|||||||
REGISTER_API(SaveDouble);
|
REGISTER_API(SaveDouble);
|
||||||
REGISTER_API(LoadDouble);
|
REGISTER_API(LoadDouble);
|
||||||
REGISTER_API(EmitAOF);
|
REGISTER_API(EmitAOF);
|
||||||
|
REGISTER_API(Log);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Global initialization at Redis startup. */
|
/* Global initialization at Redis startup. */
|
||||||
|
@ -1115,3 +1115,11 @@ by a module. The command works exactly like `RedisModule_Call()` in the way
|
|||||||
the parameters are passed, but it does not return anything as the error
|
the parameters are passed, but it does not return anything as the error
|
||||||
handling is performed by Redis itself.
|
handling is performed by Redis itself.
|
||||||
|
|
||||||
|
## `RM_Log`
|
||||||
|
|
||||||
|
void RM_Log(RedisModuleCtx *ctx, int level, const char *fmt, ...);
|
||||||
|
|
||||||
|
Produce a log message into the standard Redis log. All standard Redis logging
|
||||||
|
configuration applies here. Messages can only be logged after a module has
|
||||||
|
initialized, and are prefixed by the name of the module. Log level is
|
||||||
|
specified using the REDISMODULE_LOG_* macros.
|
||||||
|
@ -68,6 +68,13 @@
|
|||||||
#define REDISMODULE_POSITIVE_INFINITE (1.0/0.0)
|
#define REDISMODULE_POSITIVE_INFINITE (1.0/0.0)
|
||||||
#define REDISMODULE_NEGATIVE_INFINITE (-1.0/0.0)
|
#define REDISMODULE_NEGATIVE_INFINITE (-1.0/0.0)
|
||||||
|
|
||||||
|
/* Logging levels */
|
||||||
|
#define REDISMODULE_LOG_DEBUG 0
|
||||||
|
#define REDISMODULE_LOG_VERBOSE 1
|
||||||
|
#define REDISMODULE_LOG_NOTICE 2
|
||||||
|
#define REDISMODULE_LOG_WARNING 3
|
||||||
|
|
||||||
|
|
||||||
/* ------------------------- End of common defines ------------------------ */
|
/* ------------------------- End of common defines ------------------------ */
|
||||||
|
|
||||||
#ifndef REDISMODULE_CORE
|
#ifndef REDISMODULE_CORE
|
||||||
@ -180,6 +187,7 @@ RedisModuleString *REDISMODULE_API_FUNC(RedisModule_LoadString)(RedisModuleIO *i
|
|||||||
char *REDISMODULE_API_FUNC(RedisModule_LoadStringBuffer)(RedisModuleIO *io, size_t *lenptr);
|
char *REDISMODULE_API_FUNC(RedisModule_LoadStringBuffer)(RedisModuleIO *io, size_t *lenptr);
|
||||||
void REDISMODULE_API_FUNC(RedisModule_SaveDouble)(RedisModuleIO *io, double value);
|
void REDISMODULE_API_FUNC(RedisModule_SaveDouble)(RedisModuleIO *io, double value);
|
||||||
double REDISMODULE_API_FUNC(RedisModule_LoadDouble)(RedisModuleIO *io);
|
double REDISMODULE_API_FUNC(RedisModule_LoadDouble)(RedisModuleIO *io);
|
||||||
|
void REDISMODULE_API_FUNC(RedisModule_Log)(RedisModuleCtx *ctx, int level, const char *fmt, ...);
|
||||||
|
|
||||||
/* This is included inline inside each Redis module. */
|
/* This is included inline inside each Redis module. */
|
||||||
static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int apiver) __attribute__((unused));
|
static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int apiver) __attribute__((unused));
|
||||||
@ -270,6 +278,7 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
|
|||||||
REDISMODULE_GET_API(SaveDouble);
|
REDISMODULE_GET_API(SaveDouble);
|
||||||
REDISMODULE_GET_API(LoadDouble);
|
REDISMODULE_GET_API(LoadDouble);
|
||||||
REDISMODULE_GET_API(EmitAOF);
|
REDISMODULE_GET_API(EmitAOF);
|
||||||
|
REDISMODULE_GET_API(Log);
|
||||||
|
|
||||||
RedisModule_SetModuleAttribs(ctx,name,ver,apiver);
|
RedisModule_SetModuleAttribs(ctx,name,ver,apiver);
|
||||||
return REDISMODULE_OK;
|
return REDISMODULE_OK;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user