Browse Source

add log settings

Germey 3 years ago
parent
commit
2154cefc9a
4 changed files with 13 additions and 6 deletions
  1. 4 3
      README.md
  2. 1 0
      docker-compose.yml
  3. 7 2
      proxypool/setting.py
  4. 1 1
      requirements.txt

+ 4 - 3
README.md

@@ -115,7 +115,7 @@ export PROXYPOOL_REDIS_CONNECTION_STRING='redis://localhost'
 ```
 ```
 
 
 这里连接字符串的格式需要符合 `redis://[:password@]host[:port][/database]` 的格式,
 这里连接字符串的格式需要符合 `redis://[:password@]host[:port][/database]` 的格式,
-中括号参数可以省略,port默认是6379,database默认是0,密码默认为空。
+中括号参数可以省略,port 默认是 6379,database 默认是 0,密码默认为空。
 
 
 以上两种设置任选其一即可。
 以上两种设置任选其一即可。
 
 
@@ -226,13 +226,12 @@ get random proxy 116.196.115.209:8080
 - ENABLE_GETTER:允许 Getter 启动,默认 true
 - ENABLE_GETTER:允许 Getter 启动,默认 true
 - ENABLE_SERVER:运行 Server 启动,默认 true
 - ENABLE_SERVER:运行 Server 启动,默认 true
 
 
-
 ### 环境
 ### 环境
 
 
 - APP_ENV:运行环境,可以设置 dev、test、prod,即开发、测试、生产环境,默认 dev
 - APP_ENV:运行环境,可以设置 dev、test、prod,即开发、测试、生产环境,默认 dev
 - APP_DEBUG:调试模式,可以设置 true 或 false,默认 true
 - APP_DEBUG:调试模式,可以设置 true 或 false,默认 true
 - APP_PROD_METHOD: 正式环境启动应用方式,默认是`gevent`,
 - APP_PROD_METHOD: 正式环境启动应用方式,默认是`gevent`,
-  可选:`tornado`,`meinheld`(分别需要安装tornado或meinheld模块)
+  可选:`tornado`,`meinheld`(分别需要安装 tornado  meinheld 模块)
 
 
 ### Redis 连接
 ### Redis 连接
 
 
@@ -260,6 +259,8 @@ get random proxy 116.196.115.209:8080
 - LOG_DIR:日志相对路径
 - LOG_DIR:日志相对路径
 - LOG_RUNTIME_FILE:运行日志文件名称
 - LOG_RUNTIME_FILE:运行日志文件名称
 - LOG_ERROR_FILE:错误日志文件名称
 - LOG_ERROR_FILE:错误日志文件名称
+- LOG_ROTATION: 日志记录周转周期或大小,见 [loguru - rotation](https://github.com/Delgan/loguru#easier-file-logging-with-rotation--retention--compression)
+- LOG_RETENTION: 日志保留日期,见 [loguru - retention](https://github.com/Delgan/loguru#easier-file-logging-with-rotation--retention--compression)
 - ENABLE_LOG_FILE:是否输出 log 文件,默认 true,如果设置为 false,那么 ENABLE_LOG_RUNTIME_FILE 和 ENABLE_LOG_ERROR_FILE 都不会生效
 - ENABLE_LOG_FILE:是否输出 log 文件,默认 true,如果设置为 false,那么 ENABLE_LOG_RUNTIME_FILE 和 ENABLE_LOG_ERROR_FILE 都不会生效
 - ENABLE_LOG_RUNTIME_FILE:是否输出 runtime log 文件,默认 true
 - ENABLE_LOG_RUNTIME_FILE:是否输出 runtime log 文件,默认 true
 - ENABLE_LOG_ERROR_FILE:是否输出 error log 文件,默认 true
 - ENABLE_LOG_ERROR_FILE:是否输出 error log 文件,默认 true

+ 1 - 0
docker-compose.yml

@@ -15,3 +15,4 @@ services:
     #   - proxypool/crawlers/private:/app/proxypool/crawlers/private
     #   - proxypool/crawlers/private:/app/proxypool/crawlers/private
     environment:
     environment:
       PROXYPOOL_REDIS_HOST: redis4proxypool
       PROXYPOOL_REDIS_HOST: redis4proxypool
+      

+ 7 - 2
proxypool/setting.py

@@ -2,6 +2,7 @@ import platform
 from os.path import dirname, abspath, join
 from os.path import dirname, abspath, join
 from environs import Env
 from environs import Env
 from loguru import logger
 from loguru import logger
+import shutil
 
 
 
 
 env = Env()
 env = Env()
@@ -100,11 +101,15 @@ LOG_LEVEL_MAP = {
 }
 }
 
 
 LOG_LEVEL = LOG_LEVEL_MAP.get(APP_ENV)
 LOG_LEVEL = LOG_LEVEL_MAP.get(APP_ENV)
+LOG_ROTATION = env.str('LOG_ROTATION', '500MB')
+LOG_RETENTION = env.str('LOG_RETENTION', '1 week')
 
 
 if ENABLE_LOG_FILE:
 if ENABLE_LOG_FILE:
     if ENABLE_LOG_RUNTIME_FILE:
     if ENABLE_LOG_RUNTIME_FILE:
         logger.add(env.str('LOG_RUNTIME_FILE', join(LOG_DIR, 'runtime.log')),
         logger.add(env.str('LOG_RUNTIME_FILE', join(LOG_DIR, 'runtime.log')),
-                   level=LOG_LEVEL, rotation='1 week', retention='20 days')
+                   level=LOG_LEVEL, rotation=LOG_ROTATION, retention=LOG_RETENTION)
     if ENABLE_LOG_ERROR_FILE:
     if ENABLE_LOG_ERROR_FILE:
         logger.add(env.str('LOG_ERROR_FILE', join(LOG_DIR, 'error.log')),
         logger.add(env.str('LOG_ERROR_FILE', join(LOG_DIR, 'error.log')),
-                   level='ERROR', rotation='1 week')
+                   level='ERROR', rotation=LOG_ROTATION)
+else:
+    shutil.rmtree(LOG_DIR, ignore_errors=True)

+ 1 - 1
requirements.txt

@@ -14,5 +14,5 @@ maxminddb_geolite2==2018.703
 gevent>=21.1.0,<22.0.0
 gevent>=21.1.0,<22.0.0
 tornado>=6.0,<7.0
 tornado>=6.0,<7.0
 meinheld>=1.0.0,<2.0.0
 meinheld>=1.0.0,<2.0.0
-itsdangerous>=0.24,<1.0.0
+itsdangerous==0.24
 MarkupSafe<2.1.0
 MarkupSafe<2.1.0