Windows环境下如何禁用RabbitMQ日志或配置按日期轮转?配置无效求助
解决RabbitMQ Shovel连接失败时日志暴涨及日志文件控制问题
首先,你遇到的RABBIT~1.LOG这类日志文件是Windows系统下的8.3短文件名,本质是Erlang SASL(系统架构支持库)的日志——你之前的配置只覆盖了RabbitMQ自身的日志设置,没处理SASL日志,所以才会继续生成这类文件。下面给你两种针对性解决方案:
方案一:完全禁用所有日志文件(不推荐,仅应急用)
如果确实需要彻底关闭日志输出,需要同时配置RabbitMQ和Erlang SASL的日志参数。修改你的rabbitmq.config为以下内容:
[ {rabbit, [ {log, [{file, [{enabled, false}]}]}, {log_levels, [{connection, error}, {default, error}]} ]}, {sasl, [ {sasl_error_logger, false}, {errlog_type, error}, {error_logger_mf_dir, undefined}, {error_logger_mf_maxbytes, 0}, {error_logger_mf_maxfiles, 0} ]} ].
rabbit段:关闭RabbitMQ自身的文件日志输出,同时把日志级别降到最低(仅记录错误)sasl段:直接关闭SASL错误日志记录,清空日志目录与轮转参数,阻止生成任何SASL日志文件
方案二:配置按日期轮转日志(推荐,兼顾问题排查与体积控制)
完全禁用日志会丢失排查问题的关键信息,更合理的方式是配置日志按日期自动轮转,同时保留指定天数的日志。修改rabbitmq.config如下:
[ {rabbit, [ {log, [ {file, [ {enabled, true}, {file, "C:\\Logs\\RabbitMQ\\rabbit.log"}, % Windows路径示例,Linux请改为/var/log/rabbitmq/rabbit.log {rotation, {date, "$D0"}}, % 每天自动生成新日志文件 {rotation_count, 7} % 保留最近7天的日志 ]} ]}, {log_levels, [{connection, error}, {default, info}]} ]}, {sasl, [ {errlog_type, error}, {error_logger_mf_dir, "C:\\Logs\\RabbitMQ\\sasl"}, % SASL日志存储目录 {error_logger_mf_maxbytes, 0}, % 按日期轮转时设置为0,禁用按大小轮转 {error_logger_mf_maxfiles, 7}, % 保留7天的SASL日志 {error_logger_mf_rotation, {date, "$D0"}} % SASL日志按日期轮转 ]} ].
注意事项:
- 修改配置后必须重启RabbitMQ服务才能生效:Windows可通过服务管理器重启,Linux执行
rabbitmqctl stop_app && rabbitmqctl start_app - 路径配置要对应你的系统:Windows用双反斜杠
\\,Linux用正斜杠/ - 配置完成后,
RABBIT~1.LOG这类短文件名日志会被正常命名的轮转日志替代,不会再出现无限制膨胀的情况
内容的提问来源于stack exchange,提问作者user3514034
相关产品推荐
相关产品推荐

