mirror of
https://github.com/domainaware/parsedmarc.git
synced 2026-06-27 12:34:18 +00:00
1ef3057110
- Proper IMAP namespace fix (Closes issue #557 and issue #563) - Require `mailsuite>=1.9.17` - Revert PR #552 - Add pre-flight check for nameservers (PR #562 closes issue #543) - Reformat code with `ruff`
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import logging
|
|
import logging.handlers
|
|
import json
|
|
|
|
from parsedmarc import (
|
|
parsed_aggregate_reports_to_csv_rows,
|
|
parsed_forensic_reports_to_csv_rows,
|
|
parsed_smtp_tls_reports_to_csv_rows,
|
|
)
|
|
|
|
|
|
class SyslogClient(object):
|
|
"""A client for Syslog"""
|
|
|
|
def __init__(self, server_name, server_port):
|
|
"""
|
|
Initializes the SyslogClient
|
|
Args:
|
|
server_name (str): The Syslog server
|
|
server_port (int): The Syslog UDP port
|
|
"""
|
|
self.server_name = server_name
|
|
self.server_port = server_port
|
|
self.logger = logging.getLogger("parsedmarc_syslog")
|
|
self.logger.setLevel(logging.INFO)
|
|
log_handler = logging.handlers.SysLogHandler(address=(server_name, server_port))
|
|
self.logger.addHandler(log_handler)
|
|
|
|
def save_aggregate_report_to_syslog(self, aggregate_reports):
|
|
rows = parsed_aggregate_reports_to_csv_rows(aggregate_reports)
|
|
for row in rows:
|
|
self.logger.info(json.dumps(row))
|
|
|
|
def save_forensic_report_to_syslog(self, forensic_reports):
|
|
rows = parsed_forensic_reports_to_csv_rows(forensic_reports)
|
|
for row in rows:
|
|
self.logger.info(json.dumps(row))
|
|
|
|
def save_smtp_tls_report_to_syslog(self, smtp_tls_reports):
|
|
rows = parsed_smtp_tls_reports_to_csv_rows(smtp_tls_reports)
|
|
for row in rows:
|
|
self.logger.info(json.dumps(row))
|