-1
我們正在使用NGINX + Gunicorn + Django + RQ的體系結構,以及多個rq工作者。 我們使用基本的Django的日誌記錄設置(如下圖),側翻和最大文件大小,但:NGINX/Gunicorn/Django-RQ:如何將每個rq工作者記錄到不同的文件
- 創建的文件有時非常小 - 幾個字節,而不是定義2MB。
- 數字翻轉文件與定義的不同。
問題:
a。任何想法爲什麼實際的文件創建號碼和大小是不同的然後定義?
b。是否有可能讓每個django rq-worker日誌使用翻轉和最大文件大小策略到不同的文件?
我們的日誌記錄設置:
LOG_FILE_MAX_SIZE_MB = int(os.environ.get('log_file_max_size_mb', 1))
LOG_FILES_ROTATE_NUM = int(os.environ.get('log_files_rotate_num', 8))
log_file_dir = os.path.dirname(LOG_FILE_FULL_PATH)
if not os.path.exists(log_file_dir):
os.makedirs(log_file_dir, 0777)
DATE_TIME_FORMAT = "%Y-%m-%d %H:%M:%S"
VERBOSE_LINE_FORMAT = '%(asctime)s - %(levelname)s - %(process)d - %(thread)d - %(filename)s - %(message)s'
SIMPLE_LINE_FORMAT = '[%(levelname)-7s] %(asctime)s - %(message)s'
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': VERBOSE_LINE_FORMAT,
'datefmt': DATE_TIME_FORMAT
},
'simple': {
'format': SIMPLE_LINE_FORMAT,
'datefmt': DATE_TIME_FORMAT
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
},
'fat_app_logfile': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'maxBytes': 1024*1024*LOG_FILE_MAX_SIZE_MB,
'backupCount': LOG_FILES_ROTATE_NUM,
'filename': LOG_FILE_FULL_PATH,
'formatter': 'verbose'
},
'rq_app_logfile': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'maxBytes': 1024*1024*LOG_FILE_MAX_SIZE_MB,
'backupCount': LOG_FILES_ROTATE_NUM,
'filename': LOG_FILE_FULL_PATH,
'formatter': 'verbose'
},
},
'loggers': {
'MainLogger': {
'handlers': ['console', 'fat_app_logfile'],
'propagate': True,
'level': 'DEBUG',
},
'rq_scheduler': {
'handlers': ['console'],
'level': 'DEBUG',
'propagate': True,
},
}
謝謝
我ConcurrentRotatingFileHandler啓動和運行,但仍然只看到的主要過程的日誌輸出。 –