config.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import os
  2. from logging.config import dictConfig
  3. from src.core.datasource import SERVE_HOST, MYSQL_PASSWORD
  4. class BaseConfig(object):
  5. # 数据库的配置
  6. DIALCT = "mysql"
  7. DRITVER = "pymysql"
  8. HOST = SERVE_HOST
  9. PORT = "3306"
  10. USERNAME = "root"
  11. PASSWORD = MYSQL_PASSWORD
  12. DBNAME = 'libra_bot'
  13. SQLALCHEMY_DATABASE_URI = f"{DIALCT}+{DRITVER}://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DBNAME}?charset=utf8"
  14. SQLALCHEMY_TRACK_MODIFICATIONS = True # Disable track modifications
  15. SQLALCHEMY_ECHO = False # Optional: Log SQL queries
  16. SQLALCHEMY_ENGINE_OPTIONS= {
  17. 'connect_args': {
  18. 'init_command': "SET time_zone = 'Asia/Shanghai'"
  19. }
  20. }
  21. dictConfig({
  22. "version": 1,
  23. "disable_existing_loggers": False, # 不覆盖默认配置
  24. "formatters": { # 日志输出样式
  25. "default": {
  26. "format": "%(asctime)s - %(module)s.%(lineno)d - %(levelname)s - %(threadName)s: %(message)s"
  27. }
  28. },
  29. "handlers": {
  30. "console": {
  31. "class": "logging.StreamHandler", # 控制台输出
  32. "level": "DEBUG",
  33. "formatter": "default",
  34. },
  35. "log_file": {
  36. "class": "logging.handlers.RotatingFileHandler",
  37. "level": "INFO",
  38. "formatter": "default", # 日志输出样式对应formatters
  39. "filename": "./logs/flask.log", # 指定log文件目录
  40. "maxBytes": 20*1024*1024, # 文件最大20M
  41. "backupCount": 10, # 最多10个文件
  42. "encoding": "utf8", # 文件编码
  43. },
  44. },
  45. "root": {
  46. "level": "DEBUG", # # handler中的level会覆盖掉这里的level
  47. "handlers": ["console", "log_file"],
  48. },
  49. }
  50. )