@@ -170,34 +170,56 @@ void set_sd_log_level(SDLogLevel level) {
170
170
log_level = level;
171
171
}
172
172
173
+
174
+ void set_sd_log_callback (LOG_CALLBACK lcb) {
175
+ log_callback = lcb;
176
+ }
177
+
178
+
173
179
void log_printf (SDLogLevel level, const char * file, int line, const char * format, ...) {
174
- if (level < log_level) {
175
- return ;
176
- }
177
- va_list args;
178
- va_start (args, format);
179
-
180
- if (level == SDLogLevel::DEBUG) {
181
- printf (" [DEBUG] %s:%-4d - " , basename (file).c_str (), line);
182
- vprintf (format, args);
183
- printf (" \n " );
184
- fflush (stdout);
185
- } else if (level == SDLogLevel::INFO) {
186
- printf (" [INFO] %s:%-4d - " , basename (file).c_str (), line);
187
- vprintf (format, args);
188
- printf (" \n " );
189
- fflush (stdout);
190
- } else if (level == SDLogLevel::WARN) {
191
- fprintf (stdout, " [WARN] %s:%-4d - " , basename (file).c_str (), line);
192
- vfprintf (stdout, format, args);
193
- fprintf (stdout, " \n " );
194
- fflush (stdout);
180
+
181
+
182
+ LOG_CALLBACK callback_temp = log_callback;
183
+ if (callback_temp != NULL ) {
184
+
185
+ va_list args_temp;
186
+ va_start (args_temp, format);
187
+ callback_temp (level, file, line, format, args_temp);
188
+ va_end (args_temp);
189
+
195
190
} else {
196
- fprintf (stderr, " [ERROR] %s:%-4d - " , basename (file).c_str (), line);
197
- vfprintf (stderr, format, args);
198
- fprintf (stderr, " \n " );
199
- fflush (stderr);
191
+ if (level < log_level) {
192
+ return ;
193
+ }
194
+ va_list args;
195
+ va_start (args, format);
196
+
197
+
198
+ if (level == SDLogLevel::DEBUG) {
199
+ printf (" [DEBUG] %s:%-4d - " , basename (file).c_str (), line);
200
+ vprintf (format, args);
201
+ printf (" \n " );
202
+ fflush (stdout);
203
+ } else if (level == SDLogLevel::INFO) {
204
+ printf (" [INFO] %s:%-4d - " , basename (file).c_str (), line);
205
+ vprintf (format, args);
206
+ printf (" \n " );
207
+ fflush (stdout);
208
+ } else if (level == SDLogLevel::WARN) {
209
+ fprintf (stdout, " [WARN] %s:%-4d - " , basename (file).c_str (), line);
210
+ vfprintf (stdout, format, args);
211
+ fprintf (stdout, " \n " );
212
+ fflush (stdout);
213
+ } else {
214
+ fprintf (stderr, " [ERROR] %s:%-4d - " , basename (file).c_str (), line);
215
+ vfprintf (stderr, format, args);
216
+ fprintf (stderr, " \n " );
217
+ fflush (stderr);
218
+ }
219
+
220
+ va_end (args);
200
221
}
201
222
202
- va_end (args);
223
+
224
+
203
225
}
0 commit comments