ext_logging.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import logging
  2. import os
  3. import sys
  4. from logging.handlers import RotatingFileHandler
  5. from configs import dify_config
  6. from dify_app import DifyApp
  7. def init_app(app: DifyApp):
  8. log_handlers = []
  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.append(
  14. RotatingFileHandler(
  15. filename=log_file,
  16. maxBytes=dify_config.LOG_FILE_MAX_SIZE * 1024 * 1024,
  17. backupCount=dify_config.LOG_FILE_BACKUP_COUNT,
  18. )
  19. )
  20. # Always add StreamHandler to log to console
  21. log_handlers.append(logging.StreamHandler(sys.stdout))
  22. logging.basicConfig(
  23. level=dify_config.LOG_LEVEL,
  24. format=dify_config.LOG_FORMAT,
  25. datefmt=dify_config.LOG_DATEFORMAT,
  26. handlers=log_handlers,
  27. force=True,
  28. )
  29. log_tz = dify_config.LOG_TZ
  30. if log_tz:
  31. from datetime import datetime
  32. import pytz
  33. timezone = pytz.timezone(log_tz)
  34. def time_converter(seconds):
  35. return datetime.utcfromtimestamp(seconds).astimezone(timezone).timetuple()
  36. for handler in logging.root.handlers:
  37. handler.formatter.converter = time_converter