Skip to content

Commit 90839b0

Browse files
committed
feat(logging): setup min log level, log dir and set file mode to log files
1 parent 27ac4dd commit 90839b0

File tree

4 files changed

+23
-2
lines changed

4 files changed

+23
-2
lines changed

src/rime/setup.cc

+11-1
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,20 @@ RIME_API void LoadModules(const char* module_names[]) {
3333
}
3434
}
3535

36-
RIME_API void SetupLogging(const char* app_name) {
36+
RIME_API void SetupLogging(const char* app_name, int min_log_level, const char* log_dir) {
3737
#ifdef RIME_ENABLE_LOGGING
38+
FLAGS_minloglevel = min_log_level;
39+
if (log_dir) {
40+
FLAGS_log_dir = log_dir;
41+
}
42+
// Do not allow other users to read/write log files created by current process.
43+
FLAGS_logfile_mode = 0600;
3844
google::InitGoogleLogging(app_name);
3945
#endif // RIME_ENABLE_LOGGING
4046
}
4147

48+
RIME_API void SetupLogging(const char* app_name) {
49+
SetupLogging(app_name, 0, NULL);
50+
}
51+
4252
} // namespace rime

src/rime/setup.h

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ extern const char* kLegacyModules[];
1717

1818
RIME_API void LoadModules(const char* module_names[]);
1919

20+
RIME_API void SetupLogging(const char* app_name, int min_log_level, const char* log_dir);
2021
RIME_API void SetupLogging(const char* app_name);
2122

2223
} // namespace rime

src/rime_api.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ RIME_API void RimeSetup(RimeTraits *traits) {
6868

6969
setup_deployer(traits);
7070
if (PROVIDED(traits, app_name)) {
71-
SetupLogging(traits->app_name);
71+
SetupLogging(traits->app_name, traits->min_log_level, traits->log_dir);
7272
}
7373
}
7474

src/rime_api.h

+10
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,16 @@ typedef struct rime_traits_t {
7777

7878
//! A list of modules to load before initializing
7979
const char** modules;
80+
// v1.6
81+
/*! Minimal level of logged messages.
82+
* Value is passed to Glog library using FLAGS_minloglevel variable.
83+
* 0 = INFO (default), 1 = WARNING, 2 = ERROR, 3 = FATAL
84+
*/
85+
int min_log_level;
86+
/*! Directory of log files.
87+
* Value is passed to Glog library using FLAGS_log_dir variable.
88+
*/
89+
const char* log_dir;
8090
} RimeTraits;
8191

8292
typedef struct {

0 commit comments

Comments
 (0)