| 488 | } |
| 489 | |
| 490 | static void syslog_dprint(int log_level, int facility, const char *module, const char *func, |
| 491 | char *format, va_list ap) |
| 492 | { |
| 493 | int level; |
| 494 | char *time; |
| 495 | int pid; |
| 496 | char *prefix; |
| 497 | int len; |
| 498 | str buf = {log_json_buf, log_json_buf_size}; |
| 499 | |
| 500 | switch (log_level) { |
| 501 | case L_ALERT: |
| 502 | level = LOG_ALERT; |
| 503 | break; |
| 504 | case L_CRIT: |
| 505 | level = LOG_CRIT; |
| 506 | break; |
| 507 | case L_ERR: |
| 508 | level = LOG_ERR; |
| 509 | break; |
| 510 | case L_WARN: |
| 511 | level = LOG_WARNING; |
| 512 | break; |
| 513 | case L_NOTICE: |
| 514 | level = LOG_NOTICE; |
| 515 | break; |
| 516 | case L_INFO: |
| 517 | level = LOG_INFO; |
| 518 | break; |
| 519 | case L_DBG: |
| 520 | default: |
| 521 | level = LOG_DEBUG; |
| 522 | } |
| 523 | |
| 524 | if (syslog_log_format != LOG_FORMAT_PLAIN) { |
| 525 | time = va_arg(ap, char *); |
| 526 | pid = va_arg(ap, int); |
| 527 | prefix = va_arg(ap, char *); |
| 528 | if (module && func) |
| 529 | va_arg(ap, char *); |
| 530 | |
| 531 | if ((len = log_print_json(&buf, syslog_log_format==LOG_FORMAT_JSON_CEE ? |
| 532 | LOG_JSON_SCHEMA_CEE_PREFIX : LOG_JSON_SCHEMA_BASIC, |
| 533 | time, pid, prefix, dp_log_level_str(log_level), module, func, |
| 534 | format, ap)) < 0) { |
| 535 | stderr_dprint_tmp_err("failed to print JSON log!\n"); |
| 536 | return; |
| 537 | } |
| 538 | |
| 539 | syslog(level|facility, "%.*s\n", len, log_json_buf); |
| 540 | } else { |
| 541 | /* skip the time and pid arguments from va_list */ |
| 542 | va_arg(ap, char *); |
| 543 | va_arg(ap, int); |
| 544 | |
| 545 | vsyslog(level|facility, format, ap); |
| 546 | } |
| 547 | } |
nothing calls this directly
no test coverage detected