You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.1 KiB
32 lines
1.1 KiB
import logging
|
|
import logging.handlers
|
|
import os
|
|
from splunk.clilib.bundle_paths import make_splunkhome_path
|
|
|
|
|
|
def setup_logging(log_name):
|
|
"""
|
|
@log_name: which logger
|
|
@level_name: log level, a string
|
|
"""
|
|
|
|
logfile = make_splunkhome_path(["var", "log", "splunk",
|
|
"%s.log" % log_name])
|
|
logdir = os.path.dirname(logfile)
|
|
if not os.path.exists(logdir):
|
|
os.makedirs(logdir)
|
|
logger = logging.getLogger(log_name)
|
|
logger.propagate = False
|
|
|
|
handler_exists = any([True for h in logger.handlers
|
|
if h.baseFilename == logfile])
|
|
if not handler_exists:
|
|
file_handler = logging.handlers.RotatingFileHandler(logfile, mode="a",
|
|
maxBytes=10485760,
|
|
backupCount=10)
|
|
fmt_str = "%(asctime)s %(levelname)s %(thread)d - %(message)s"
|
|
formatter = logging.Formatter(fmt_str)
|
|
file_handler.setFormatter(formatter)
|
|
logger.addHandler(file_handler)
|
|
return logger
|