Flask Python日志记录到多个文件
我有一个flask应用程序,它从2个不同的文件调用2个函数。 我已经设置了两个不同文件的日志记录。 但是,日志记录似乎总是附加到一个文件中(无论首先到达的是哪个端点) 下面是文件的结构-Flask Python日志记录到多个文件,flask,logging,python-3.7,flask-admin,logfile,Flask,Logging,Python 3.7,Flask Admin,Logfile,我有一个flask应用程序,它从2个不同的文件调用2个函数。 我已经设置了两个不同文件的日志记录。 但是,日志记录似乎总是附加到一个文件中(无论首先到达的是哪个端点) 下面是文件的结构- app.py file1.py file2.py 当我运行单独的python文件-file1.py/file2.py时,这个日志记录得很好(单独) 但是当我运行API时,日志只附加到一个文件中 我在日志记录方面做错了什么?如何修复它?将其添加到logger\u setup.py import log
- app.py
- file1.py
- file2.py
我在日志记录方面做错了什么?如何修复它?将其添加到logger\u setup.py
import logging
from pathlib import Path
formatter = logging.Formatter('%(asctime)s - %(levelname)s - [%(filename)s:%(lineno)d] - %(message)s')
def setup_logger( name, log_file, level=logging.DEBUG):
my_file = Path(log_file)
# print("check the if condition for the file")
# print(my_file.is_file())
if my_file.is_file():
#print(logging.getLogger(name).hasHandlers())
# if logging.getLogger(name).hasHandlers():
if len(logging.getLogger(name).handlers)>0:
return logging.getLogger(name)
else:
handler = logging.FileHandler(log_file, mode='a')
handler.setFormatter(formatter)
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
logger.propagate = False
return logger
else:
handler = logging.FileHandler(log_file, mode='a')
handler.setFormatter(formatter)
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
logger.propagate = False
return logger
在file1和file2中,您可以使用如下内容
import logging
import logger_setup
def fun1():
log_location = 'logs'
logger = logger_setup.setup_logger(__name__,log_location+__name__+'.log')
logger.info("Logging function 1 details to to file1")
return "1"
def fun2:
logging.basicConfig(filename = "file2.log")
logging.info("Logging function 2 details to to file2")
return bar
import logging
from pathlib import Path
formatter = logging.Formatter('%(asctime)s - %(levelname)s - [%(filename)s:%(lineno)d] - %(message)s')
def setup_logger( name, log_file, level=logging.DEBUG):
my_file = Path(log_file)
# print("check the if condition for the file")
# print(my_file.is_file())
if my_file.is_file():
#print(logging.getLogger(name).hasHandlers())
# if logging.getLogger(name).hasHandlers():
if len(logging.getLogger(name).handlers)>0:
return logging.getLogger(name)
else:
handler = logging.FileHandler(log_file, mode='a')
handler.setFormatter(formatter)
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
logger.propagate = False
return logger
else:
handler = logging.FileHandler(log_file, mode='a')
handler.setFormatter(formatter)
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
logger.propagate = False
return logger
import logging
import logger_setup
def fun1():
log_location = 'logs'
logger = logger_setup.setup_logger(__name__,log_location+__name__+'.log')
logger.info("Logging function 1 details to to file1")
return "1"