python - Python celery 日志记录轮换
问题描述
我有一个 celery 应用程序,它执行并发 = 1 的任务。我使用以下代码添加了日志,它工作正常但是当它尝试旋转日志时我面临异常,
下面是我的代码,
app = Celery('src.tasks',
broker='amqp://user:pass@server:5672//',
)
app.config_from_object('src.settings')
# Optional configuration, see the application user guide.
app.conf.update(
CELERY_ACKS_LATE=True,
CELERY_PREFETCH_MULTIPLIER=1,
CELERYBEAT_MAX_LOOP_INTERVAL=600,
CELERY_ROUTES={'myqueue': {'queue': 'myqueue'}},
CELERY_TASK_SERIALIZER='pickle',
CELERY_RESULT_SERIALIZER='pickle',
CELERY_ACCEPT_CONTENT=['pickle', 'json'],
result_expires=3600,
)
LOGGER = app.conf.LOGGER
我的设置是,
LOG_FILENAME="log.log"
LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)
handler = logging.handlers.TimedRotatingFileHandler(LOG_FILENAME,
maxBytes=100,
backupCount=5,
)
formatter = logging.Formatter(LOG_FORMAT)
handler.setFormatter(formatter)
LOGGER.addHandler(handler)
我正在执行如下代码
>> celery -A src.tasks worker -E -Q AWS_jobclassification --concurrency=1
错误
[2020-12-18 06:40:01,305: WARNING/Worker-1] File "d:\install\miniconda\envs\py27\lib\logging\handlers.py", line 350, in doRollover
[2020-12-18 06:40:01,305: WARNING/Worker-1] os.rename(self.baseFilename, dfn)
[2020-12-18 06:40:01,305: WARNING/Worker-1] WindowsError: [Error 32] The process cannot access the file because it is being used by another process
[2020-12-18 06:40:01,305: WARNING/Worker-1] Logged from file tasks.py, line 183
我的代码有什么问题?以及如何在芹菜任务中使用日志轮换?谢谢你。
我正在使用 Windows 服务器
解决方案
推荐阅读
- angular - Angular 6在找不到页面时删除最后一个浏览器历史记录条目
- reactjs - 当我使用reactjs单击输入字段时,在输入字段中选择了单选下拉值而不是占位符并显示/隐藏下拉列表
- javascript - jQuery遍历字符串数组中的字符并找到它的索引
- google-cloud-platform - Google Cloud Speech API 的异步问题
- java - ByteBuddy javaAgent 与 javassist 代理冲突
- tcl - 单选按钮表现得像一个
- scala - 播放进化未应用于自定义 Slick 环境配置
- c# - 我的邮件发件人不向某人发送电子邮件
- selenium-chromedriver - 尝试单击页面中的任何元素时出现“java.lang.NullPointerException”
- google-apps-script - 如何从列表中填充自定义键盘的按钮并使该键盘工作?