Changeset 4511ac3
- Timestamp:
- Aug 5, 2017, 11:21:53 PM (8 years ago)
- Branches:
- master
- Children:
- 253f37f
- Parents:
- 565a43c
- git-author:
- Jason Gross <jgross@mit.edu> (08/05/17 22:06:52)
- git-committer:
- Jason Gross <jasongross9@gmail.com> (08/05/17 23:21:53)
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
commands.c
r77beb3c r4511ac3 490 490 OWLCMD_ARGS("flush-logs", owl_command_flushlogs, OWL_CTX_ANY, 491 491 "flush the queue of messages waiting to be logged", 492 "flush-logs [-f | --force] ",492 "flush-logs [-f | --force] [-q | --quiet]", 493 493 "If BarnOwl failed to log a file, this command tells\n" 494 494 "BarnOwl to try logging the messages that have since\n" … … 501 501 "any messages on the queue which cannot successfully be\n" 502 502 "logged are dropped, and BarnOwl will resume logging\n" 503 "normally."), 503 "normally.\n" 504 "\n" 505 "Unless --quiet is passed, a message is printed about\n" 506 "how many logs there are to flush."), 504 507 505 508 OWLCMD_ARGS("load-subs", owl_command_loadsubs, OWL_CTX_ANY, … … 1454 1457 char *owl_command_flushlogs(int argc, const char *const *argv, const char *buff) 1455 1458 { 1456 if (argc == 1) { 1457 owl_log_flush_logs(false); 1458 } else if (argc == 2) { 1459 if (!strcmp(argv[1], "-f") || !strcmp(argv[1], "--force")) { 1460 owl_log_flush_logs(true); 1459 bool force = false; 1460 bool quiet = false; 1461 int i; 1462 1463 for (i = 1; i < argc; i++) { 1464 if (!strcmp(argv[i], "-f") || !strcmp(argv[i], "--force")) { 1465 force = true; 1466 } else if (!strcmp(argv[i], "-q") || !strcmp(argv[i], "--quiet")) { 1467 quiet = true; 1461 1468 } else { 1462 owl_function_makemsg("Invalid flag to flush-logs: %s", argv[ 1]);1469 owl_function_makemsg("Invalid flag to flush-logs: %s", argv[i]); 1463 1470 } 1464 } else { 1465 owl_function_makemsg("Wrong number of arguments for flush-logs."); 1466 } 1471 } 1472 owl_log_flush_logs(force, quiet); 1467 1473 return NULL; 1468 1474 } -
logging.c
r565a43c r4511ac3 7 7 } owl_log_entry; 8 8 9 typedef struct _owl_log_options { /* noproto */ 10 bool drop_failed_logs; 11 bool display_initial_log_count; 12 } owl_log_options; 9 13 10 14 static GMainContext *log_context; … … 302 306 { 303 307 owl_log_entry *entry; 304 bool drop_failed_logs = *(bool*)data;308 owl_log_options *opts = (owl_log_options *)data; 305 309 int ret; 306 310 int logged_message_count = 0; 307 311 bool all_succeeded = true; 308 312 309 if (g_queue_is_empty(deferred_entry_queue)) { 310 owl_log_makemsg("There are no logs to flush."); 311 } else { 312 owl_log_makemsg("Attempting to flush %u logs...", 313 g_queue_get_length(deferred_entry_queue)); 313 if (opts->display_initial_log_count) { 314 if (g_queue_is_empty(deferred_entry_queue)) { 315 owl_log_makemsg("There are no logs to flush."); 316 } else { 317 owl_log_makemsg("Attempting to flush %u logs...", 318 g_queue_get_length(deferred_entry_queue)); 319 } 314 320 } 315 321 … … 318 324 logged_message_count++; 319 325 entry = (owl_log_entry*)g_queue_pop_head(deferred_entry_queue); 320 if (! drop_failed_logs) {326 if (!opts->drop_failed_logs) { 321 327 /* Attempt to write the log entry. If it fails, re-queue the entry at 322 328 * the head of the queue. */ … … 334 340 } 335 341 if (logged_message_count > 0) { 336 /* first clear the "attempting to flush" message from the status bar */ 337 owl_log_makemsg(""); 342 if (opts->display_initial_log_count) { 343 /* first clear the "attempting to flush" message from the status bar */ 344 owl_log_makemsg(""); 345 } 338 346 if (!defer_logs) { 339 347 if (all_succeeded) { … … 351 359 } 352 360 353 void owl_log_flush_logs(bool drop_failed_logs) 354 { 355 bool *data = g_new(bool, 1); 356 *data = drop_failed_logs; 361 void owl_log_flush_logs(bool drop_failed_logs, bool quiet) 362 { 363 owl_log_options *data = g_new(owl_log_options, 1); 364 data->drop_failed_logs = drop_failed_logs; 365 data->display_initial_log_count = !quiet; 357 366 358 367 owl_select_post_task(owl_log_write_deferred_entries, … … 641 650 /* flush the deferred logs queue, trying to write the 642 651 * entries to the disk one last time. Drop any failed 643 * entries */ 644 bool bool_true = true; 645 owl_log_write_deferred_entries(&bool_true); 652 * entries, and be quiet about it. */ 653 owl_log_options opts; 654 opts.drop_failed_logs = true; 655 opts.display_initial_log_count = false; 656 owl_log_write_deferred_entries(&opts); 646 657 #if GLIB_CHECK_VERSION(2, 32, 0) 647 658 g_queue_free_full(deferred_entry_queue, owl_log_entry_free); -
perl/lib/BarnOwl/DeferredLogging.pm
r9d6e37c r4511ac3 50 50 name => 'flush-logs interval timer', 51 51 interval => 60 * $flush_logs_interval, 52 cb => sub { BarnOwl::command("flush-logs" ); }52 cb => sub { BarnOwl::command("flush-logs", "-q"); } 53 53 }); 54 54 }
Note: See TracChangeset
for help on using the changeset viewer.