ext_logging.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import logging
  2. import os
  3. import sys
  4. from logging.handlers import RotatingFileHandler
  5. from flask import Flask
  6. from configs import dify_config
  7. def init_app(app: Flask):
  8. log_handlers = None
  9. log_file = dify_config.LOG_FILE
  10. if log_file:
  11. log_dir = os.path.dirname(log_file)
  12. os.makedirs(log_dir, exist_ok=True)
  13. log_handlers = [
  14. RotatingFileHandler(
  15. filename=log_file,
  16. maxBytes=1024 * 1024 * 1024,
  17. backupCount=5,
  18. ),
  19. logging.StreamHandler(sys.stdout),
  20. ]
  21. logging.basicConfig(
  22. level=dify_config.LOG_LEVEL,
  23. format=dify_config.LOG_FORMAT,
  24. datefmt=dify_config.LOG_DATEFORMAT,
  25. handlers=log_handlers,
  26. force=True,
  27. )
  28. log_tz = dify_config.LOG_TZ
  29. if log_tz:
  30. from datetime import datetime
  31. import pytz
  32. timezone = pytz.timezone(log_tz)
  33. def time_converter(seconds):
  34. return datetime.utcfromtimestamp(seconds).astimezone(timezone).timetuple()
  35. for handler in logging.root.handlers:
  36. handler.formatter.converter = time_converter