Kouhei Sutou
null+****@clear*****
Sun Jul 26 19:23:06 JST 2015
Kouhei Sutou 2015-07-26 19:23:06 +0900 (Sun, 26 Jul 2015) New Revision: 43ba94b208e06a98156a5ba4c34ec95591a95afe https://github.com/pgroonga/pgroonga/commit/43ba94b208e06a98156a5ba4c34ec95591a95afe Message: Add pgroonga.log_type We can use Windows event log on Windows. It requires Groonga 5.0.6 that isn't released yet. Added files: expected/variable/log-type/valid.out sql/variable/log-type/valid.sql Modified files: .travis.yml pgroonga.c Modified: .travis.yml (+2 -2) =================================================================== --- .travis.yml 2015-07-26 17:07:23 +0900 (95d511b) +++ .travis.yml 2015-07-26 19:23:06 +0900 (fa96694) @@ -6,8 +6,8 @@ compiler: - gcc addons: postgresql: "9.3" -# env: -# - GROONGA_MASTER=yes +env: + - GROONGA_MASTER=yes install: - curl --silent --location https://github.com/groonga/groonga/raw/master/data/travis/setup.sh | sh - sudo apt-get install -qq -y postgresql-server-dev-9.3 Added: expected/variable/log-type/valid.out (+27 -0) 100644 =================================================================== --- /dev/null +++ expected/variable/log-type/valid.out 2015-07-26 19:23:06 +0900 (dbd4e14) @@ -0,0 +1,27 @@ +-- To load PGroonga +SELECT pgroonga.command('status')::json->0->0; + ?column? +---------- + 0 +(1 row) + +SHOW pgroonga.log_type; + pgroonga.log_type +------------------- + file +(1 row) + +SET pgroonga.log_type = 'windows_event_log'; +SHOW pgroonga.log_type; + pgroonga.log_type +------------------- + windows_event_log +(1 row) + +SET pgroonga.log_type = default; +SHOW pgroonga.log_type; + pgroonga.log_type +------------------- + file +(1 row) + Modified: pgroonga.c (+37 -0) =================================================================== --- pgroonga.c 2015-07-26 17:07:23 +0900 (548b65c) +++ pgroonga.c 2015-07-26 19:23:06 +0900 (f04d59b) @@ -52,7 +52,20 @@ PG_MODULE_MAGIC; static bool PGrnIsLZ4Available; static relopt_kind PGrnReloptionKind; + +static int PGrnLogType; +enum PGrnLogType { + PGRN_LOG_TYPE_FILE, + PGRN_LOG_TYPE_WINDOWS_EVENT_LOG +}; +static struct config_enum_entry PGrnLogTypeEntries[] = { + {"file", PGRN_LOG_TYPE_FILE, false}, + {"windows_event_log", PGRN_LOG_TYPE_WINDOWS_EVENT_LOG, false}, + {NULL, PGRN_LOG_TYPE_FILE, false} +}; + static char *PGrnLogPath; + static int PGrnLogLevel; static struct config_enum_entry PGrnLogLevelEntries[] = { {"none", GRN_LOG_NONE, false}, @@ -210,6 +223,16 @@ PGrnGetEncoding(void) } static void +PGrnLogTypeAssign(int new_value, void *extra) +{ + if (new_value == PGRN_LOG_TYPE_WINDOWS_EVENT_LOG) { + grn_windows_event_logger_set(ctx); + } else { + grn_logger_set(ctx, NULL); + } +} + +static void PGrnLogPathAssign(const char *new_value, void *extra) { if (new_value) { @@ -232,6 +255,20 @@ PGrnLogLevelAssign(int new_value, void *extra) static void PGrnInitializeVariables(void) { + DefineCustomEnumVariable("pgroonga.log_type", + "Log type for PGroonga.", + "Available log types: " + "[file, windows_event_log]. " + "The default is file.", + &PGrnLogType, + PGRN_LOG_TYPE_FILE, + PGrnLogTypeEntries, + PGC_USERSET, + 0, + NULL, + PGrnLogTypeAssign, + NULL); + DefineCustomStringVariable("pgroonga.log_path", "Log path for PGroonga.", "The default is " Added: sql/variable/log-type/valid.sql (+8 -0) 100644 =================================================================== --- /dev/null +++ sql/variable/log-type/valid.sql 2015-07-26 19:23:06 +0900 (0a49764) @@ -0,0 +1,8 @@ +-- To load PGroonga +SELECT pgroonga.command('status')::json->0->0; + +SHOW pgroonga.log_type; +SET pgroonga.log_type = 'windows_event_log'; +SHOW pgroonga.log_type; +SET pgroonga.log_type = default; +SHOW pgroonga.log_type; -------------- next part -------------- HTML����������������������������...Download