[Groonga-commit] pgroonga/pgroonga at 29659c1 [master] Add pgroonga.log_path

Back to archive index

Kouhei Sutou null+****@clear*****
Sun Jul 26 17:00:17 JST 2015


Kouhei Sutou	2015-07-26 17:00:17 +0900 (Sun, 26 Jul 2015)

  New Revision: 29659c19ce6c23fbe344c97896cb354d50a38975
  https://github.com/pgroonga/pgroonga/commit/29659c19ce6c23fbe344c97896cb354d50a38975

  Message:
    Add pgroonga.log_path

  Added files:
    expected/variable/log-path/valid.out
    sql/variable/log-path/valid.sql
  Modified files:
    pgroonga.c

  Added: expected/variable/log-path/valid.out (+27 -0) 100644
===================================================================
--- /dev/null
+++ expected/variable/log-path/valid.out    2015-07-26 17:00:17 +0900 (b83a4c8)
@@ -0,0 +1,27 @@
+-- To load PGroonga
+SELECT pgroonga.command('status')::json->0->0;
+ ?column? 
+----------
+ 0
+(1 row)
+
+SHOW pgroonga.log_path;
+ pgroonga.log_path 
+-------------------
+ 
+(1 row)
+
+SET pgroonga.log_path = 'none';
+SHOW pgroonga.log_path;
+ pgroonga.log_path 
+-------------------
+ none
+(1 row)
+
+SET pgroonga.log_path = default;
+SHOW pgroonga.log_path;
+ pgroonga.log_path 
+-------------------
+ 
+(1 row)
+

  Modified: pgroonga.c (+31 -11)
===================================================================
--- pgroonga.c    2015-07-26 16:35:43 +0900 (3edf11b)
+++ pgroonga.c    2015-07-26 17:00:17 +0900 (a4e83e2)
@@ -52,6 +52,7 @@ PG_MODULE_MAGIC;
 
 static bool PGrnIsLZ4Available;
 static relopt_kind PGrnReloptionKind;
+static char *PGrnLogPath;
 static int PGrnLogLevel;
 static struct config_enum_entry PGrnLogLevelEntries[] = {
 	{"none",      GRN_LOG_NONE,    false},
@@ -209,17 +210,25 @@ PGrnGetEncoding(void)
 }
 
 static void
-PGrnSetLogPath(void)
+PGrnLogPathAssign(const char *new_value, void *extra)
 {
-	char *databasePath;
-	char path[MAXPGPATH];
+	if (new_value) {
+		if (strcmp(new_value, "none") == 0) {
+			grn_default_logger_set_path(NULL);
+		} else {
+			grn_default_logger_set_path(new_value);
+		}
+	} else {
+		char *databasePath;
+		char path[MAXPGPATH];
 
-	databasePath = GetDatabasePath(MyDatabaseId, DEFAULTTABLESPACE_OID);
-	join_path_components(path,
-						 databasePath,
-						 PGrnLogBasename);
-	pfree(databasePath);
-	grn_default_logger_set_path(path);
+		databasePath = GetDatabasePath(MyDatabaseId, DEFAULTTABLESPACE_OID);
+		join_path_components(path,
+							 databasePath,
+							 PGrnLogBasename);
+		pfree(databasePath);
+		grn_default_logger_set_path(path);
+	}
 }
 
 static void
@@ -231,6 +240,19 @@ PGrnLogLevelAssign(int new_value, void *extra)
 static void
 PGrnInitializeVariables(void)
 {
+	DefineCustomStringVariable("pgroonga.log_path",
+							   "Log path for PGroonga.",
+							   "The default is "
+							   "\"${database_dir}/" PGrnLogBasename "\". "
+							   "Use \"none\" to disable file output.",
+							   &PGrnLogPath,
+							   NULL,
+							   PGC_USERSET,
+							   0,
+							   NULL,
+							   PGrnLogPathAssign,
+							   NULL);
+
 	DefineCustomEnumVariable("pgroonga.log_level",
 							 "Log level for PGroonga.",
 							 "Available log levels: "
@@ -413,8 +435,6 @@ PGrnInitializeOptions(void)
 void
 _PG_init(void)
 {
-	PGrnSetLogPath();
-
 	PGrnInitializeVariables();
 
 	if (grn_init() != GRN_SUCCESS)

  Added: sql/variable/log-path/valid.sql (+8 -0) 100644
===================================================================
--- /dev/null
+++ sql/variable/log-path/valid.sql    2015-07-26 17:00:17 +0900 (82a8c4d)
@@ -0,0 +1,8 @@
+-- To load PGroonga
+SELECT pgroonga.command('status')::json->0->0;
+
+SHOW pgroonga.log_path;
+SET pgroonga.log_path = 'none';
+SHOW pgroonga.log_path;
+SET pgroonga.log_path = default;
+SHOW pgroonga.log_path;
-------------- next part --------------
HTML����������������������������...
Download 



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