Changeset 5359
- Timestamp:
- 03/12/08 10:09:52 (4 months ago)
- Files:
-
- libwired/trunk/libwired/system/wi-log.c (modified) (13 diffs)
- libwired/trunk/libwired/system/wi-log.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
libwired/trunk/libwired/system/wi-log.c
r5265 r5359 57 57 58 58 59 static void _wi_log_vlog( int, wi_string_t *, va_list);59 static void _wi_log_vlog(wi_log_level_t, wi_string_t *, va_list); 60 60 static void _wi_log_date(char *); 61 61 static void _wi_log_truncate(const char *); … … 70 70 wi_boolean_t wi_log_file = false; 71 71 72 wi_log_level_t wi_log_level = WI_LOG_ NORMAL;72 wi_log_level_t wi_log_level = WI_LOG_INFO; 73 73 int wi_log_syslog_facility = LOG_DAEMON; 74 74 wi_uinteger_t wi_log_limit = 0; … … 148 148 #pragma mark - 149 149 150 static void _wi_log_vlog( int priority, wi_string_t *fmt, va_list ap) {150 static void _wi_log_vlog(wi_log_level_t level, wi_string_t *fmt, va_list ap) { 151 151 wi_string_t *string; 152 152 FILE *fp = NULL; 153 153 const char *cstring, *name, *path; 154 154 char date[_WI_LOG_DATE_SIZE]; 155 156 string = wi_string_init_with_format_and_arguments(wi_string_alloc(), fmt, ap); 157 cstring = wi_string_cstring(string); 158 155 int priority; 156 159 157 if(wi_lock_trylock(_wi_log_lock)) { 158 string = wi_string_init_with_format_and_arguments(wi_string_alloc(), fmt, ap); 159 cstring = wi_string_cstring(string); 160 160 name = wi_string_cstring(wi_process_name(wi_process())); 161 161 … … 167 167 fprintf(fp, "%s %s[%u]: %s\n", date, name, (uint32_t) getpid(), cstring); 168 168 } 169 else if(wi_log_startup && priority <LOG_INFO) {169 else if(wi_log_startup && level < WI_LOG_INFO) { 170 170 fp = stderr; 171 171 … … 173 173 } 174 174 else if(wi_log_tool) { 175 fp = ( priority <LOG_INFO) ? stderr : stdout;175 fp = (level < WI_LOG_INFO) ? stderr : stdout; 176 176 177 177 fprintf(fp, "%s: %s\n", name, cstring); 178 178 } 179 179 else if(wi_log_plain) { 180 fp = ( priority <LOG_INFO) ? stderr : stdout;180 fp = (level < WI_LOG_INFO) ? stderr : stdout; 181 181 182 182 fprintf(fp, "%s\n", cstring); … … 186 186 fflush(fp); 187 187 188 if(wi_log_syslog) 188 if(wi_log_syslog) { 189 switch(level) { 190 default: 191 case WI_LOG_INFO: priority = LOG_INFO; break; 192 case WI_LOG_WARN: priority = LOG_WARNING; break; 193 case WI_LOG_ERR: priority = LOG_ERR; break; 194 case WI_LOG_DEBUG: priority = LOG_DEBUG; break; 195 } 196 189 197 syslog(priority, "%s", cstring); 198 } 190 199 191 200 if(wi_log_file && wi_log_path) { … … 213 222 214 223 if(wi_log_callback) 215 (*wi_log_callback)( string);216 217 if(wi_log_startup && priority ==LOG_ERR)224 (*wi_log_callback)(level, string); 225 226 if(wi_log_startup && level == WI_LOG_ERR) 218 227 exit(1); 228 229 wi_release(string); 219 230 220 231 wi_lock_unlock(_wi_log_lock); 221 232 } 222 223 wi_release(string);224 233 } 225 234 … … 309 318 if(wi_log_level >= WI_LOG_DEBUG) { 310 319 va_start(ap, fmt); 311 _wi_log_vlog( LOG_DEBUG, fmt, ap);320 _wi_log_vlog(WI_LOG_DEBUG, fmt, ap); 312 321 va_end(ap); 313 322 } … … 320 329 321 330 va_start(ap, fmt); 322 _wi_log_vlog( LOG_INFO, fmt, ap);331 _wi_log_vlog(WI_LOG_INFO, fmt, ap); 323 332 va_end(ap); 324 333 } … … 330 339 331 340 va_start(ap, fmt); 332 _wi_log_vlog( LOG_WARNING, fmt, ap);341 _wi_log_vlog(WI_LOG_WARN, fmt, ap); 333 342 va_end(ap); 334 343 } … … 340 349 341 350 va_start(ap, fmt); 342 _wi_log_vlog( LOG_ERR, fmt, ap);351 _wi_log_vlog(WI_LOG_ERR, fmt, ap); 343 352 va_end(ap); 344 353 } … … 349 358 va_list ap; 350 359 351 if(wi_log_level >= WI_LOG_VERBOSE1) { 352 va_start(ap, fmt); 353 _wi_log_vlog(LOG_INFO, fmt, ap); 354 va_end(ap); 355 } 360 va_start(ap, fmt); 361 _wi_log_vlog(WI_LOG_INFO, fmt, ap); 362 va_end(ap); 356 363 } 357 364 … … 361 368 va_list ap; 362 369 363 if(wi_log_level >= WI_LOG_VERBOSE2) { 364 va_start(ap, fmt); 365 _wi_log_vlog(LOG_INFO, fmt, ap); 366 va_end(ap); 367 } 368 } 370 va_start(ap, fmt); 371 _wi_log_vlog(WI_LOG_INFO, fmt, ap); 372 va_end(ap); 373 } libwired/trunk/libwired/system/wi-log.h
r5193 r5359 37 37 38 38 enum _wi_log_level { 39 WI_LOG_NORMAL = 0, 40 WI_LOG_VERBOSE1, 41 WI_LOG_VERBOSE2, 42 WI_LOG_DEBUG, 43 WI_LOG_MAX 39 WI_LOG_ERR = 0, 40 WI_LOG_WARN, 41 WI_LOG_INFO, 42 WI_LOG_DEBUG 44 43 }; 45 44 typedef enum _wi_log_level wi_log_level_t; 46 45 47 46 48 typedef void wi_log_callback_func_t(wi_ string_t *);47 typedef void wi_log_callback_func_t(wi_log_level_t, wi_string_t *); 49 48 50 49
