Log summary at the end as per any other output.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
diff --git a/main.c b/main.c
index a18cf47..6a858fc 100644
--- a/main.c
+++ b/main.c
@@ -4083,6 +4083,17 @@ static void *watchdog_thread(void *userdata)
return NULL;
}
+static void log_print_status(int thr_id)
+{
+ struct cgpu_info *cgpu = thr_info[thr_id].cgpu;
+
+ applog(LOG_WARNING, " %sPU %d: [%.1f / %.1f Mh/s] [Q:%d A:%d R:%d HW:%d E:%.0f%% U:%.2f/m]",
+ cgpu->is_gpu ? "G" : "C", cgpu->cpu_gpu, cgpu->rolling,
+ cgpu->total_mhashes / total_secs, cgpu->getworks,
+ cgpu->accepted, cgpu->rejected, cgpu->hw_errors,
+ cgpu->efficiency, cgpu->utility);
+}
+
static void print_summary(void)
{
struct timeval diff;
@@ -4097,58 +4108,57 @@ static void print_summary(void)
utility = total_accepted / ( total_secs ? total_secs : 1 ) * 60;
efficiency = total_getworks ? total_accepted * 100.0 / total_getworks : 0.0;
- printf("\nSummary of runtime statistics:\n\n");
- printf("Started at %s\n", datestamp);
+ applog(LOG_WARNING, "\nSummary of runtime statistics:\n");
+ applog(LOG_WARNING, "Started at %s", datestamp);
if (opt_n_threads)
- printf("CPU hasher algorithm used: %s\n", algo_names[opt_algo]);
- printf("Runtime: %d hrs : %d mins : %d secs\n", hours, mins, secs);
+ applog(LOG_WARNING, "CPU hasher algorithm used: %s", algo_names[opt_algo]);
+ applog(LOG_WARNING, "Runtime: %d hrs : %d mins : %d secs", hours, mins, secs);
if (total_secs)
- printf("Average hashrate: %.1f Megahash/s\n", total_mhashes_done / total_secs);
- printf("Queued work requests: %d\n", total_getworks);
- printf("Share submissions: %d\n", total_accepted + total_rejected);
- printf("Accepted shares: %d\n", total_accepted);
- printf("Rejected shares: %d\n", total_rejected);
+ applog(LOG_WARNING, "Average hashrate: %.1f Megahash/s", total_mhashes_done / total_secs);
+ applog(LOG_WARNING, "Queued work requests: %d", total_getworks);
+ applog(LOG_WARNING, "Share submissions: %d", total_accepted + total_rejected);
+ applog(LOG_WARNING, "Accepted shares: %d", total_accepted);
+ applog(LOG_WARNING, "Rejected shares: %d", total_rejected);
if (total_accepted || total_rejected)
- printf("Reject ratio: %.1f\n", (double)(total_rejected * 100) / (double)(total_accepted + total_rejected));
- printf("Hardware errors: %d\n", hw_errors);
- printf("Efficiency (accepted / queued): %.0f%%\n", efficiency);
- printf("Utility (accepted shares / min): %.2f/min\n\n", utility);
-
- printf("Discarded work due to new blocks: %d\n", total_discarded);
- printf("Stale submissions discarded due to new blocks: %d\n", total_stale);
- printf("Unable to get work from server occasions: %d\n", total_lo);
- printf("Work items generated locally: %d\n", local_work);
- printf("Submitting work remotely delay occasions: %d\n", total_ro);
- printf("New blocks detected on network: %d\n\n", new_blocks);
+ applog(LOG_WARNING, "Reject ratio: %.1f", (double)(total_rejected * 100) / (double)(total_accepted + total_rejected));
+ applog(LOG_WARNING, "Hardware errors: %d", hw_errors);
+ applog(LOG_WARNING, "Efficiency (accepted / queued): %.0f%%", efficiency);
+ applog(LOG_WARNING, "Utility (accepted shares / min): %.2f/min\n", utility);
+
+ applog(LOG_WARNING, "Discarded work due to new blocks: %d", total_discarded);
+ applog(LOG_WARNING, "Stale submissions discarded due to new blocks: %d", total_stale);
+ applog(LOG_WARNING, "Unable to get work from server occasions: %d", total_lo);
+ applog(LOG_WARNING, "Work items generated locally: %d", local_work);
+ applog(LOG_WARNING, "Submitting work remotely delay occasions: %d", total_ro);
+ applog(LOG_WARNING, "New blocks detected on network: %d\n", new_blocks);
if (total_pools > 1) {
for (i = 0; i < total_pools; i++) {
struct pool *pool = pools[i];
- printf("Pool: %s\n", pool->rpc_url);
- printf(" Queued work requests: %d\n", pool->getwork_requested);
- printf(" Share submissions: %d\n", pool->accepted + pool->rejected);
- printf(" Accepted shares: %d\n", pool->accepted);
- printf(" Rejected shares: %d\n", pool->rejected);
+ applog(LOG_WARNING, "Pool: %s", pool->rpc_url);
+ applog(LOG_WARNING, " Queued work requests: %d", pool->getwork_requested);
+ applog(LOG_WARNING, " Share submissions: %d", pool->accepted + pool->rejected);
+ applog(LOG_WARNING, " Accepted shares: %d", pool->accepted);
+ applog(LOG_WARNING, " Rejected shares: %d", pool->rejected);
if (pool->accepted || pool->rejected)
- printf(" Reject ratio: %.1f\n", (double)(pool->rejected * 100) / (double)(pool->accepted + pool->rejected));
+ applog(LOG_WARNING, " Reject ratio: %.1f", (double)(pool->rejected * 100) / (double)(pool->accepted + pool->rejected));
efficiency = pool->getwork_requested ? pool->accepted * 100.0 / pool->getwork_requested : 0.0;
- printf(" Efficiency (accepted / queued): %.0f%%\n", efficiency);
+ applog(LOG_WARNING, " Efficiency (accepted / queued): %.0f%%", efficiency);
- printf(" Discarded work due to new blocks: %d\n", pool->discarded_work);
- printf(" Stale submissions discarded due to new blocks: %d\n", pool->stale_shares);
- printf(" Unable to get work from server occasions: %d\n", pool->localgen_occasions);
- printf(" Submitting work remotely delay occasions: %d\n\n", pool->remotefail_occasions);
+ applog(LOG_WARNING, " Discarded work due to new blocks: %d", pool->discarded_work);
+ applog(LOG_WARNING, " Stale submissions discarded due to new blocks: %d", pool->stale_shares);
+ applog(LOG_WARNING, " Unable to get work from server occasions: %d", pool->localgen_occasions);
+ applog(LOG_WARNING, " Submitting work remotely delay occasions: %d\n", pool->remotefail_occasions);
}
}
- printf("Summary of per device statistics:\n\n");
+ applog(LOG_WARNING, "Summary of per device statistics:\n");
for (i = 0; i < mining_threads; i++) {
if (active_device(i))
- print_status(i);
+ log_print_status(i);
}
- printf("\n");
- fflush(stdout);
+ applog(LOG_WARNING, "\n");
}
void quit(int status, const char *format, ...)