mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2025-12-06 09:12:45 +01:00
54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
#!/usr/bin/python3
|
|
|
|
# Copyright Security Onion Solutions LLC and/or licensed to Security Onion Solutions LLC under one
|
|
# or more contributor license agreements. Licensed under the Elastic License 2.0 as shown at
|
|
# https://securityonion.net/license; you may not use this file except in compliance with the
|
|
# Elastic License 2.0.
|
|
|
|
import logging
|
|
import os
|
|
import sys
|
|
|
|
def setup_logging(logger_name, log_file_path, log_level=logging.INFO, format_str='%(asctime)s - %(levelname)s - %(message)s'):
|
|
"""
|
|
Sets up logging for a script.
|
|
|
|
Parameters:
|
|
logger_name (str): The name of the logger.
|
|
log_file_path (str): The file path for the log file.
|
|
log_level (int): The logging level (e.g., logging.INFO, logging.DEBUG).
|
|
format_str (str): The format string for log messages.
|
|
|
|
Returns:
|
|
logging.Logger: Configured logger object.
|
|
"""
|
|
logger = logging.getLogger(logger_name)
|
|
logger.setLevel(log_level)
|
|
|
|
# Create directory for log file if it doesn't exist
|
|
log_file_dir = os.path.dirname(log_file_path)
|
|
if log_file_dir and not os.path.exists(log_file_dir):
|
|
try:
|
|
os.makedirs(log_file_dir)
|
|
except OSError as e:
|
|
print(f"Error creating directory {log_file_dir}: {e}")
|
|
sys.exit(1)
|
|
|
|
# Create handlers
|
|
c_handler = logging.StreamHandler()
|
|
f_handler = logging.FileHandler(log_file_path)
|
|
c_handler.setLevel(log_level)
|
|
f_handler.setLevel(log_level)
|
|
|
|
# Create formatter and add it to handlers
|
|
formatter = logging.Formatter(format_str)
|
|
c_handler.setFormatter(formatter)
|
|
f_handler.setFormatter(formatter)
|
|
|
|
# Add handlers to the logger if they are not already added
|
|
if not logger.hasHandlers():
|
|
logger.addHandler(c_handler)
|
|
logger.addHandler(f_handler)
|
|
|
|
return logger
|