52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
# coding=utf-8
|
|
import os
|
|
import sys
|
|
import logging
|
|
|
|
|
|
import platform
|
|
|
|
|
|
def check_macos():
|
|
os_name = platform.system()
|
|
if os_name == 'Darwin':
|
|
return True
|
|
return False
|
|
|
|
def setup_logger(level = None, logfile_name: str = 'search-agent'):
|
|
if level is None:
|
|
if os.getenv('SEARCH_AGENT_DEBUG', '0').strip().lower() in ('1', 'true'):
|
|
level = logging.DEBUG
|
|
else:
|
|
level = logging.INFO
|
|
|
|
formatter = logging.Formatter('%(asctime)s - %(filename)s - %(lineno)d - %(levelname)s - %(message)s')
|
|
|
|
handler = logging.StreamHandler()
|
|
# Do not run handler.setLevel(level) so that users can change the level via logger.setLevel later
|
|
handler.setFormatter(formatter)
|
|
|
|
# agent path
|
|
if check_macos():
|
|
agent_path = 'logs'
|
|
else:
|
|
agent_path = os.getenv('AGENT_PATH', 'logs')
|
|
if len(agent_path) > 0:
|
|
agent_path = agent_path + '/logs'
|
|
# check path
|
|
if not os.path.exists(agent_path):
|
|
os.makedirs(agent_path)
|
|
file_handler = logging.FileHandler(f'{agent_path}/{logfile_name}.log')
|
|
file_handler.setFormatter(formatter)
|
|
|
|
_logger = logging.getLogger(logfile_name)
|
|
_logger.setLevel(level)
|
|
_logger.addHandler(handler)
|
|
_logger.addHandler(file_handler)
|
|
return _logger
|
|
|
|
|
|
logger = setup_logger(logfile_name='search-agent')
|
|
access_logger = setup_logger(logfile_name='search-agent-access')
|
|
error_logger = setup_logger(logfile_name='search-agent-error')
|