Kouhei Sutou
null+****@clear*****
Sat May 30 17:26:34 JST 2015
Kouhei Sutou 2015-05-30 17:26:34 +0900 (Sat, 30 May 2015) New Revision: 0f8e16bfd26abf3cee1e4e8a8c2acf538a496c3f https://github.com/pgroonga/pgroonga/commit/0f8e16bfd26abf3cee1e4e8a8c2acf538a496c3f Message: Add pgroonga.log_level variable It changes log level. Added files: expected/variable/log-level/invalid.out expected/variable/log-level/valid.out sql/variable/log-level/invalid.sql sql/variable/log-level/valid.sql Modified files: pgroonga.c Added: expected/variable/log-level/invalid.out (+22 -0) 100644 =================================================================== --- /dev/null +++ expected/variable/log-level/invalid.out 2015-05-30 17:26:34 +0900 (fb811c1) @@ -0,0 +1,22 @@ +-- To load PGroonga +SELECT pgroonga.command('status')::json->0->0; + ?column? +---------- + 0 +(1 row) + +SHOW pgroonga.log_level; + pgroonga.log_level +-------------------- + notice +(1 row) + +SET pgroonga.log_level = 'invalid'; +ERROR: invalid value for parameter "pgroonga.log_level": "invalid" +HINT: Available values: none, emergency, alert, critical, error, warning, notice, info, debug, dump. +SHOW pgroonga.log_level; + pgroonga.log_level +-------------------- + notice +(1 row) + Added: expected/variable/log-level/valid.out (+27 -0) 100644 =================================================================== --- /dev/null +++ expected/variable/log-level/valid.out 2015-05-30 17:26:34 +0900 (f652b2a) @@ -0,0 +1,27 @@ +-- To load PGroonga +SELECT pgroonga.command('status')::json->0->0; + ?column? +---------- + 0 +(1 row) + +SHOW pgroonga.log_level; + pgroonga.log_level +-------------------- + notice +(1 row) + +SET pgroonga.log_level = 'none'; +SHOW pgroonga.log_level; + pgroonga.log_level +-------------------- + none +(1 row) + +SET pgroonga.log_level = default; +SHOW pgroonga.log_level; + pgroonga.log_level +-------------------- + notice +(1 row) + Modified: pgroonga.c (+44 -0) =================================================================== --- pgroonga.c 2015-05-30 17:15:51 +0900 (6a8d5be) +++ pgroonga.c 2015-05-30 17:26:34 +0900 (ed87332) @@ -20,6 +20,7 @@ #include <storage/lmgr.h> #include <utils/array.h> #include <utils/builtins.h> +#include <utils/guc.h> #include <utils/lsyscache.h> #include <utils/selfuncs.h> #include <utils/snapmgr.h> @@ -51,6 +52,20 @@ PG_MODULE_MAGIC; static bool PGrnIsLZ4Available; static relopt_kind PGrnReloptionKind; +static int PGrnLogLevel; +static struct config_enum_entry PGrnLogLevelEntries[] = { + {"none", GRN_LOG_NONE, false}, + {"emergency", GRN_LOG_EMERG, false}, + {"alert", GRN_LOG_ALERT, false}, + {"critical", GRN_LOG_CRIT, false}, + {"error", GRN_LOG_ERROR, false}, + {"warning", GRN_LOG_WARNING, false}, + {"notice", GRN_LOG_NOTICE, false}, + {"info", GRN_LOG_INFO, false}, + {"debug", GRN_LOG_DEBUG, false}, + {"dump", GRN_LOG_DUMP, false}, + {NULL, GRN_LOG_NONE, false} +}; typedef struct PGrnOptions { @@ -204,6 +219,33 @@ PGrnSetLogPath(void) } static void +PGrnLogLevelAssign(int new_value, void *extra) +{ + grn_default_logger_set_max_level(new_value); +} + +static void +PGrnInitializeVariables(void) +{ + DefineCustomEnumVariable("pgroonga.log_level", + "Log level for PGroonga.", + "Available log levels: " + "[none, emergency, alert, critical, " + "error, warning, notice, info, debug, dump]. " + "The default is notice.", + &PGrnLogLevel, + GRN_LOG_DEFAULT_LEVEL, + PGrnLogLevelEntries, + PGC_USERSET, + 0, + NULL, + PGrnLogLevelAssign, + NULL); + + EmitWarningsOnPlaceholders("pgroonga"); +} + +static void PGrnEnsureDatabase(void) { char path[MAXPGPATH]; @@ -369,6 +411,8 @@ _PG_init(void) { PGrnSetLogPath(); + PGrnInitializeVariables(); + if (grn_init() != GRN_SUCCESS) ereport(ERROR, (errcode(ERRCODE_SYSTEM_ERROR), Added: sql/variable/log-level/invalid.sql (+6 -0) 100644 =================================================================== --- /dev/null +++ sql/variable/log-level/invalid.sql 2015-05-30 17:26:34 +0900 (d058564) @@ -0,0 +1,6 @@ +-- To load PGroonga +SELECT pgroonga.command('status')::json->0->0; + +SHOW pgroonga.log_level; +SET pgroonga.log_level = 'invalid'; +SHOW pgroonga.log_level; Added: sql/variable/log-level/valid.sql (+8 -0) 100644 =================================================================== --- /dev/null +++ sql/variable/log-level/valid.sql 2015-05-30 17:26:34 +0900 (4a1f180) @@ -0,0 +1,8 @@ +-- To load PGroonga +SELECT pgroonga.command('status')::json->0->0; + +SHOW pgroonga.log_level; +SET pgroonga.log_level = 'none'; +SHOW pgroonga.log_level; +SET pgroonga.log_level = default; +SHOW pgroonga.log_level; -------------- next part -------------- HTML����������������������������...下载