src/server/daemon/log.c

changeset 130
198ad9d8cec1
parent 115
51d9a15eac98
child 141
ff311b63c3af
equal deleted inserted replaced
129:fd324464f56f 130:198ad9d8cec1
142 142
143 return 0; 143 return 0;
144 } 144 }
145 145
146 void log_uninitialized_writeln(char *str, size_t len) { 146 void log_uninitialized_writeln(char *str, size_t len) {
147 printf("%.*s\n", (int)len, str);
148
147 if(ui_buffer == NULL) { 149 if(ui_buffer == NULL) {
148 ui_buffer = sbuf_new(1024); 150 ui_buffer = sbuf_new(1024);
149 if(ui_buffer == NULL) { 151 if(ui_buffer == NULL) {
150 return; /* TODO: critical error, exit */ 152 return; /* TODO: critical error, exit */
151 } 153 }
160 } 162 }
161 163
162 void log_file_writeln(char *str, size_t len) { 164 void log_file_writeln(char *str, size_t len) {
163 if(!is_initialized) { 165 if(!is_initialized) {
164 log_uninitialized_writeln(str, len); 166 log_uninitialized_writeln(str, len);
167 return;
165 } 168 }
166 169
167 struct iovec io[] = { 170 struct iovec io[] = {
168 { str, len }, 171 { str, len },
169 { "\n", 1} 172 { "\n", 1}
170 }; 173 };
171 174
172 writev(log_file_fd, io, 2); /* TODO: aio */ 175 writev(log_file_fd, io, 2); /* TODO: aio? */
173 if(!main_is_daemon()) { 176 if(!main_is_daemon()) {
174 writev(STDOUT_FILENO, io, 2); 177 writev(STDOUT_FILENO, io, 2);
175 } 178 }
176 } 179 }
177 180

mercurial