Changeset 76d92db1 in mainline for uspace/srv/logger/namespace.c
- Timestamp:
- 2012-08-14T09:37:42Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- cddcc4a3
- Parents:
- 14de4106
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/logger/namespace.c
r14de4106 r76d92db1 40 40 */ 41 41 42 42 43 struct logging_namespace { 43 44 fibril_mutex_t guard; … … 45 46 fibril_condvar_t reader_appeared_cv; 46 47 bool has_reader; 48 FILE *logfile; 49 log_level_t logfile_level; 47 50 const char *name; 48 51 link_t link; … … 107 110 return NULL; 108 111 } 112 113 char *logfilename; 114 int rc = asprintf(&logfilename, "/log/%s", name); 115 if (rc < 0) { 116 free(namespace->name); 117 free(namespace); 118 return NULL; 119 } 120 namespace->logfile = fopen(logfilename, "a"); 121 free(logfilename); 122 if (namespace->logfile == NULL) { 123 free(namespace->name); 124 free(namespace); 125 return NULL; 126 } 127 128 namespace->logfile_level = DEFAULT_LOGGING_LEVEL; 109 129 110 130 fibril_mutex_initialize(&namespace->guard); … … 153 173 154 174 // TODO - destroy pending messages 175 fclose(namespace->logfile); 155 176 free(namespace->name); 156 177 free(namespace); … … 223 244 } 224 245 225 bool namespace_has_reader(logging_namespace_t *namespace) 226 { 227 fibril_mutex_lock(&namespace->guard); 228 bool has_reader = namespace->has_reader; 246 bool namespace_has_reader(logging_namespace_t *namespace, log_level_t level) 247 { 248 fibril_mutex_lock(&namespace->guard); 249 bool has_reader = namespace->has_reader 250 || level <= namespace->logfile_level; 229 251 fibril_mutex_unlock(&namespace->guard); 230 252 return has_reader; … … 247 269 if (level <= DEFAULT_LOGGING_LEVEL) { 248 270 printf("[%s %d]: %s\n", namespace->name, level, message); 271 } 272 if (level <= namespace->logfile_level) { 273 fprintf(namespace->logfile, "[%d]: %s\n", level, message); 274 fflush(namespace->logfile); 249 275 } 250 276
Note:
See TracChangeset
for help on using the changeset viewer.