forked from iti-framework/iTi-Flask
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.
41 lines
1.1 KiB
Python
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)
|