Browse Source

feat: gunicorn添加日志控制

SongZihuan 3 years ago
parent
commit
aca7cd68e3
2 changed files with 41 additions and 10 deletions
  1. 41 6
      gunicorn.conf.py
  2. 0 4
      main.py

+ 41 - 6
gunicorn.conf.py

@@ -1,15 +1,50 @@
 # gunicorn.conf.py
-import logging
-import logging.handlers
-from logging.handlers import WatchedFileHandler
 import os
+import sys
 import multiprocessing
+import logging.handlers
+import logging
+
 bind = '0.0.0.0:80'
-timeout = 30      #超时
+timeout = 30  # 超时
 
 worker_class = 'gevent'
-workers = multiprocessing.cpu_count() * 2 + 1    #进程数
-threads = 2 #指定每个进程开启的线程数
+workers = multiprocessing.cpu_count() * 2 + 1  # 进程数
+threads = 2  # 指定每个进程开启的线程数
 
 loglevel = 'info'
 access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'
+
+os.makedirs("~/hblog", exist_ok=True, mode=0o775)
+
+# 设置访问日志和错误信息日志路径
+log_format = ("[%(levelname)s] %(name)s %(asctime)s "
+              "(%(pathname)s:%(lineno)d %(funcName)s) "
+              "%(process)d %(thread)d "
+              "%(message)s")
+log_formatter = logging.Formatter(log_format)
+
+console_handle = logging.StreamHandler(sys.stdout)
+console_handle.setFormatter(log_formatter)
+
+# 错误日志
+gunicorn_error_logger = logging.getLogger("gunicorn.error")
+gunicorn_error_logger.setLevel(logging.WARNING)
+
+gunicorn_error_logger.addHandler(console_handle)
+
+errorlog = "~/hblog/gunicorn_error.log"
+time_handle = logging.handlers.TimedRotatingFileHandler(errorlog, when="d", backupCount=30, encoding='utf-8')
+gunicorn_error_logger.addHandler(time_handle)
+time_handle.setFormatter(log_formatter)
+
+# 一般日志
+gunicorn_access_logger = logging.getLogger("gunicorn.access")
+gunicorn_access_logger.setLevel(logging.INFO)
+
+gunicorn_access_logger.addHandler(console_handle)
+
+accesslog = "~/hblog/gunicorn_access.log"
+time_handle = logging.handlers.TimedRotatingFileHandler(accesslog, when="d", backupCount=10, encoding='utf-8')
+gunicorn_access_logger.addHandler(time_handle)
+time_handle.setFormatter(log_formatter)

+ 0 - 4
main.py

@@ -1,7 +1,6 @@
 from configure import configure, conf
 import os
 
-
 env_dict = os.environ
 hblog_conf = env_dict.get("hblog_conf")
 if hblog_conf is None:
@@ -11,18 +10,15 @@ else:
     print(f"执行配置文件: {hblog_conf}")
     configure(hblog_conf)
 
-
 from view import WebApp
 from waitress import serve
 
-
 web = WebApp(__name__)
 app = web.get_app()
 
 if conf["server-name"] is not None:
     app.config['SERVER_NAME'] = conf["server-name"]
 
-
 if __name__ == '__main__':
     print("已启动服务: 127.0.0.1:8080")
     serve(app, host='0.0.0.0', port="8080")