| 98 | } |
| 99 | |
| 100 | void acl_msg_open(const char *log_file, const char *info_pre) |
| 101 | { |
| 102 | const char *myname = "acl_msg_open"; |
| 103 | int ret; |
| 104 | |
| 105 | if (log_file == NULL || *log_file == 0 |
| 106 | || info_pre == NULL || *info_pre == 0) |
| 107 | { |
| 108 | return; |
| 109 | } |
| 110 | |
| 111 | if (__open_fn != NULL) { |
| 112 | ret = __open_fn(log_file, __msg_ctx); |
| 113 | /* if return < 0, use the default log */ |
| 114 | if (ret < 0) { |
| 115 | __open_fn = NULL; |
| 116 | __close_fn = NULL; |
| 117 | __write_fn = NULL; |
| 118 | __msg_ctx = NULL; |
| 119 | ret = acl_open_log(log_file, info_pre); |
| 120 | } |
| 121 | } else |
| 122 | ret = acl_open_log(log_file, info_pre); |
| 123 | |
| 124 | if (ret < 0) { |
| 125 | printf("%s: can't open log file=%s, info_pre=%s,%s\n", |
| 126 | myname, log_file, info_pre, acl_last_serror()); |
| 127 | __log_open_flag = 0; |
| 128 | __open_fn = NULL; |
| 129 | __write_fn = NULL; |
| 130 | __msg_ctx = NULL; |
| 131 | return; |
| 132 | } |
| 133 | __log_open_flag = 1; |
| 134 | } |
| 135 | |
| 136 | void acl_msg_close(void) |
| 137 | { |
searching dependent graphs…