You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iTi-Flask/iti/common/logger.py

41 lines
1.1 KiB
Python

import logging
from logging.handlers import RotatingFileHandler
import os
# Create a formatter and set it for the handler
formatter = logging.Formatter("%(asctime)s %(levelname)s %(name)s - %(message)s")
# Create a rotating file handler
file_handler = RotatingFileHandler(
"iti-flask.log", encoding="utf-8", maxBytes=10 * 1024 * 1024, backupCount=5
)
file_handler.setLevel(logging.INFO)
file_handler.setFormatter(formatter)
def setup_logger(name):
logger = logging.getLogger(name)
if logger.handlers:
return logger
logger.setLevel(logging.DEBUG)
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
# Add the handler to the logger if it hasn't been added yet
if os.getenv("FLASK_ENV", "dev") in ["prod", "production"]:
logger.addHandler(file_handler)
# 防止日志传播到父 logger
logger.propagate = False
return logger
def init_logger(app):
if os.getenv("FLASK_ENV", "dev") in ["prod", "production"]:
app.logger.addHandler(file_handler)