[Groonga-commit] pgroonga/pgroonga at 0f8e16b [master] Add pgroonga.log_level variable

Back to archive index

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����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index