Skip to content

Commit 6707938

Browse files
committed
Optimize logger code
1 parent 224904d commit 6707938

File tree

4 files changed

+28
-12
lines changed

4 files changed

+28
-12
lines changed

ext-src/php_swoole.cc

+4-4
Original file line numberDiff line numberDiff line change
@@ -237,19 +237,19 @@ void php_swoole_set_global_option(HashTable *vht) {
237237

238238
#ifdef SW_DEBUG
239239
if (php_swoole_array_get_value(vht, "debug_mode", ztmp) && zval_is_true(ztmp)) {
240-
sw_logger()->set_level(0);
240+
swoole_set_log_level(0);
241241
}
242242
#endif
243243
// [Logger]
244244
// ======================================================================
245245
if (php_swoole_array_get_value(vht, "trace_flags", ztmp)) {
246-
SwooleG.trace_flags = (uint32_t) SW_MAX(0, zval_get_long(ztmp));
246+
swoole_set_trace_flags(zval_get_long(ztmp));
247247
}
248248
if (php_swoole_array_get_value(vht, "log_file", ztmp)) {
249-
sw_logger()->open(zend::String(ztmp).val());
249+
swoole_set_log_file(zend::String(ztmp).val());
250250
}
251251
if (php_swoole_array_get_value(vht, "log_level", ztmp)) {
252-
sw_logger()->set_level(zval_get_long(ztmp));
252+
swoole_set_log_level(zval_get_long(ztmp));
253253
}
254254
if (php_swoole_array_get_value(vht, "log_date_format", ztmp)) {
255255
sw_logger()->set_date_format(zend::String(ztmp).val());

include/swoole.h

+2
Original file line numberDiff line numberDiff line change
@@ -784,6 +784,7 @@ SW_API void swoole_throw_error(int code);
784784
SW_API void swoole_ignore_error(int code);
785785
SW_API bool swoole_is_ignored_error(int code);
786786
SW_API void swoole_set_log_level(int level);
787+
SW_API void swoole_set_log_file(const char *file);
787788
SW_API void swoole_set_trace_flags(int flags);
788789
SW_API void swoole_set_dns_server(const std::string &server);
789790
SW_API void swoole_set_hosts_path(const std::string &hosts_file);
@@ -793,6 +794,7 @@ SW_API void swoole_name_resolver_add(const swoole::NameResolver &resolver, bool
793794
SW_API void swoole_name_resolver_each(
794795
const std::function<enum swTraverseOperation(const std::list<swoole::NameResolver>::iterator &iter)> &fn);
795796
SW_API std::string swoole_name_resolver_lookup(const std::string &host_name, swoole::NameResolver::Context *ctx);
797+
SW_API int swoole_get_log_level();
796798

797799
//-----------------------------------------------
798800
static sw_inline void sw_spinlock(sw_atomic_t *lock) {

include/swoole_log.h

+8-8
Original file line numberDiff line numberDiff line change
@@ -88,21 +88,21 @@ swoole::Logger *sw_logger();
8888
#define __SW_FUNC__ (swoole::Logger::get_pretty_name(__PRETTY_FUNCTION__).c_str())
8989

9090
#define swoole_info(str, ...) \
91-
if (SW_LOG_INFO >= sw_logger()->get_level()) { \
91+
if (SW_LOG_INFO >= swoole_get_log_level()) { \
9292
size_t _sw_error_len = sw_snprintf(sw_error, SW_ERROR_MSG_SIZE, str, ##__VA_ARGS__); \
9393
sw_logger()->put(SW_LOG_INFO, sw_error, _sw_error_len); \
9494
}
9595

9696
#define swoole_notice(str, ...) \
97-
if (SW_LOG_NOTICE >= sw_logger()->get_level()) { \
97+
if (SW_LOG_NOTICE >= swoole_get_log_level()) { \
9898
size_t _sw_error_len = sw_snprintf(sw_error, SW_ERROR_MSG_SIZE, str, ##__VA_ARGS__); \
9999
sw_logger()->put(SW_LOG_NOTICE, sw_error, _sw_error_len); \
100100
}
101101

102102
#define swoole_sys_notice(str, ...) \
103103
do { \
104104
swoole_set_last_error(errno); \
105-
if (SW_LOG_ERROR >= sw_logger()->get_level()) { \
105+
if (SW_LOG_ERROR >= swoole_get_log_level()) { \
106106
size_t _sw_error_len = sw_snprintf(sw_error, \
107107
SW_ERROR_MSG_SIZE, \
108108
"%s(:%d): " str ", Error: %s[%d]", \
@@ -117,7 +117,7 @@ swoole::Logger *sw_logger();
117117

118118
#define swoole_warning(str, ...) \
119119
do { \
120-
if (SW_LOG_WARNING >= sw_logger()->get_level()) { \
120+
if (SW_LOG_WARNING >= swoole_get_log_level()) { \
121121
size_t _sw_error_len = sw_snprintf(sw_error, SW_ERROR_MSG_SIZE, "%s(): " str, __SW_FUNC__, ##__VA_ARGS__); \
122122
sw_logger()->put(SW_LOG_WARNING, sw_error, _sw_error_len); \
123123
} \
@@ -126,7 +126,7 @@ swoole::Logger *sw_logger();
126126
#define swoole_sys_warning(str, ...) \
127127
do { \
128128
swoole_set_last_error(errno); \
129-
if (SW_LOG_ERROR >= sw_logger()->get_level()) { \
129+
if (SW_LOG_ERROR >= swoole_get_log_level()) { \
130130
size_t _sw_error_len = sw_snprintf(sw_error, \
131131
SW_ERROR_MSG_SIZE, \
132132
"%s(): " str ", Error: %s[%d]", \
@@ -167,7 +167,7 @@ swoole::Logger *sw_logger();
167167
#define swoole_error_log(level, error, str, ...) \
168168
do { \
169169
swoole_set_last_error(error); \
170-
if (level >= sw_logger()->get_level() && !swoole_is_ignored_error(error)) { \
170+
if (level >= swoole_get_log_level() && !swoole_is_ignored_error(error)) { \
171171
size_t _sw_error_len = \
172172
sw_snprintf(sw_error, SW_ERROR_MSG_SIZE, "%s() (ERRNO %d): " str, __SW_FUNC__, error, ##__VA_ARGS__); \
173173
sw_logger()->put(level, sw_error, _sw_error_len); \
@@ -176,7 +176,7 @@ swoole::Logger *sw_logger();
176176

177177
#ifdef SW_DEBUG
178178
#define swoole_debug(str, ...) \
179-
if (SW_LOG_DEBUG >= sw_logger()->get_level()) { \
179+
if (SW_LOG_DEBUG >= swoole_get_log_level()) { \
180180
size_t _sw_error_len = \
181181
sw_snprintf(sw_error, SW_ERROR_MSG_SIZE, "%s(:%d): " str, __SW_FUNC__, __LINE__, ##__VA_ARGS__); \
182182
sw_logger()->put(SW_LOG_DEBUG, sw_error, _sw_error_len); \
@@ -252,7 +252,7 @@ enum swTrace_type {
252252

253253
#ifdef SW_LOG_TRACE_OPEN
254254
#define swoole_trace_log(what, str, ...) \
255-
if (SW_LOG_TRACE >= sw_logger()->get_level() && (what & SwooleG.trace_flags)) { \
255+
if (SW_LOG_TRACE >= swoole_get_log_level() && (what & SwooleG.trace_flags)) { \
256256
size_t _sw_error_len = \
257257
sw_snprintf(sw_error, SW_ERROR_MSG_SIZE, "%s(:%d): " str, __SW_FUNC__, __LINE__, ##__VA_ARGS__); \
258258
sw_logger()->put(SW_LOG_TRACE, sw_error, _sw_error_len); \

src/core/base.cc

+14
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,20 @@ SW_API void swoole_set_log_level(int level) {
294294
}
295295
}
296296

297+
SW_API int swoole_get_log_level() {
298+
if (sw_logger()) {
299+
return sw_logger()->get_level();
300+
} else {
301+
return SW_LOG_NONE;
302+
}
303+
}
304+
305+
SW_API void swoole_set_log_file(const char *file) {
306+
if (sw_logger()) {
307+
sw_logger()->open(file);
308+
}
309+
}
310+
297311
SW_API void swoole_set_trace_flags(int flags) {
298312
SwooleG.trace_flags = flags;
299313
}

0 commit comments

Comments
 (0)