50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
#
|
|
# Copyright (c) 2021 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
|
|
"""
|
|
Logging
|
|
"""
|
|
|
|
import logging
|
|
import logging.handlers
|
|
import os
|
|
import sys
|
|
|
|
_loggers = {}
|
|
|
|
|
|
def get_logger(name):
|
|
""" Get a logger or create one """
|
|
|
|
if name not in _loggers:
|
|
_loggers[name] = logging.getLogger(name)
|
|
setup_logger(_loggers[name])
|
|
return _loggers[name]
|
|
|
|
|
|
def setup_logger(logger):
|
|
""" Setup a logger """
|
|
|
|
# Send logs to /var/log/platform.log
|
|
syslog_facility = logging.handlers.SysLogHandler.LOG_LOCAL1
|
|
|
|
formatter = logging.Formatter("configassistant[%(process)d] " +
|
|
"%(pathname)s:%(lineno)s " +
|
|
"%(levelname)8s [%(name)s] %(message)s")
|
|
|
|
running_in_container = os.getenv("RUNNING_IN_CONTAINER", "False").strip().lower()
|
|
if running_in_container == "true":
|
|
handler = logging.StreamHandler(stream=sys.stdout)
|
|
else:
|
|
handler = logging.handlers.SysLogHandler(address='/dev/log',
|
|
facility=syslog_facility)
|
|
handler.setLevel(logging.INFO)
|
|
handler.setFormatter(formatter)
|
|
|
|
logger.addHandler(handler)
|
|
logger.setLevel(logging.INFO)
|