Fix: Set Celery LOG_File only when available, always log to console (#10563)

This commit is contained in:
fdb02983rhy 2024-11-12 00:53:12 +09:00 committed by GitHub
parent bd4a61addd
commit 16db2c4e57
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 6 deletions

View File

@ -46,7 +46,6 @@ def init_app(app: Flask) -> Celery:
broker_connection_retry_on_startup=True, broker_connection_retry_on_startup=True,
worker_log_format=dify_config.LOG_FORMAT, worker_log_format=dify_config.LOG_FORMAT,
worker_task_log_format=dify_config.LOG_FORMAT, worker_task_log_format=dify_config.LOG_FORMAT,
worker_logfile=dify_config.LOG_FILE,
worker_hijack_root_logger=False, worker_hijack_root_logger=False,
timezone=pytz.timezone(dify_config.LOG_TZ), timezone=pytz.timezone(dify_config.LOG_TZ),
) )
@ -56,6 +55,11 @@ def init_app(app: Flask) -> Celery:
broker_use_ssl=ssl_options, # Add the SSL options to the broker configuration broker_use_ssl=ssl_options, # Add the SSL options to the broker configuration
) )
if dify_config.LOG_FILE:
celery_app.conf.update(
worker_logfile=dify_config.LOG_FILE,
)
celery_app.set_default() celery_app.set_default()
app.extensions["celery"] = celery_app app.extensions["celery"] = celery_app

View File

@ -9,19 +9,21 @@ from configs import dify_config
def init_app(app: Flask): def init_app(app: Flask):
log_handlers = None log_handlers = []
log_file = dify_config.LOG_FILE log_file = dify_config.LOG_FILE
if log_file: if log_file:
log_dir = os.path.dirname(log_file) log_dir = os.path.dirname(log_file)
os.makedirs(log_dir, exist_ok=True) os.makedirs(log_dir, exist_ok=True)
log_handlers = [ log_handlers.append(
RotatingFileHandler( RotatingFileHandler(
filename=log_file, filename=log_file,
maxBytes=dify_config.LOG_FILE_MAX_SIZE * 1024 * 1024, maxBytes=dify_config.LOG_FILE_MAX_SIZE * 1024 * 1024,
backupCount=dify_config.LOG_FILE_BACKUP_COUNT, backupCount=dify_config.LOG_FILE_BACKUP_COUNT,
), )
logging.StreamHandler(sys.stdout), )
]
# Always add StreamHandler to log to console
log_handlers.append(logging.StreamHandler(sys.stdout))
logging.basicConfig( logging.basicConfig(
level=dify_config.LOG_LEVEL, level=dify_config.LOG_LEVEL,