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