如何将lager.err_logger_hwm设置为rabbitmq by rabbitmqctl命令
此如何设置error_logger_hwm在新的rabbitmq .conf配置文件格式?不适合我的情况下运行的rabbitmq
( rabbitmq 3.7.7.10 on Erlang 20.2.2 -ubuntu 16.04 )由Docker容器。
我可以在主机目录中添加 advaths.config ,然后更新 config.json 用于生成/var/lib/rabbitmq/rabbitmq/config/generated/rabbitmq.config < /strong>在重新启动后自动。
root@*-pc:/etc/kolla/rabbitmq# cat advanced.config
[
{lager, [
{error_logger_hwm, 4000}
]}
].
root@*-pc:/etc/kolla/rabbitmq# cat config.json
{
"command": "/usr/sbin/rabbitmq-server",
"config_files": [
{
"source": "/var/lib/kolla/config_files/advanced.config",
"dest": "/etc/rabbitmq/advanced.config",
"owner": "rabbitmq",
"perm": "0600"
},
{
"source": "/var/lib/kolla/config_files/rabbitmq.conf",
"dest": "/etc/rabbitmq/rabbitmq.conf",
"owner": "rabbitmq",
"perm": "0600"
},
......
root@*-pc:/etc/kolla/rabbitmq# docker restart rabbitmq
rabbitmq
root@*-pc:/etc/kolla/rabbitmq# docker exec rabbitmq rabbitmqctl eval 'application:get_env(lager, error_logger_hwm).'
{ok,4000}
问题:
- 是否有任何命令设置环境参数,例如
'应用程序:get_env(lager,error_logger_hwm)。 。也找不到任何线索,“ nofollow noreferrer”> rabbitmq配置。
# docker exec rabbitmq rabbitmqctl eval '[lager:set_loghwm(error_logger_hwm, 4000)]'
Error (argument validation): "syntax error before: "
Arguments given:
eval [lager:set_loghwm(error_logger_hwm, 4000)]
Usage:
rabbitmqctl [-n <node>] [-l] [-q] eval <expr>
似乎也没有提高限制,我不知道这是什么意思。参考 rabbitmq lager_error_logger_h删除消息。
# docker exec rabbitmq rabbitmqctl eval 'application:get_env(lager, error_logger_hwm).'
{ok,50}
# docker exec rabbitmq rabbitmqctl eval '[lager:set_loghwm(H, 4000) || H <- gen_event:which_handlers(lager_event)].'
[{last_loghwm,50},ok]
# docker exec rabbitmq rabbitmqctl eval 'application:get_env(lager, error_logger_hwm).'
{ok,50}
# docker exec rabbitmq rabbitmqctl eval '[lager:set_loghwm(H, 4000) || H <- gen_event:which_handlers(lager_event)].'
[{last_loghwm,4000},ok]
# docker exec rabbitmq rabbitmqctl eval 'application:get_env(lager, error_logger_hwm).'
{ok,50}
This How to set error_logger_hwm in the new RabbitMQ .conf configuration file format? not suitable for my situation which running rabbitmq
(RabbitMQ 3.7.10 on Erlang 20.2.2 -- Ubuntu 16.04) by docker container.
I could add advanced.config in the host's directory, and update config.json for generating /var/lib/rabbitmq/config/generated/rabbitmq.config automatically after restart it.
root@*-pc:/etc/kolla/rabbitmq# cat advanced.config
[
{lager, [
{error_logger_hwm, 4000}
]}
].
root@*-pc:/etc/kolla/rabbitmq# cat config.json
{
"command": "/usr/sbin/rabbitmq-server",
"config_files": [
{
"source": "/var/lib/kolla/config_files/advanced.config",
"dest": "/etc/rabbitmq/advanced.config",
"owner": "rabbitmq",
"perm": "0600"
},
{
"source": "/var/lib/kolla/config_files/rabbitmq.conf",
"dest": "/etc/rabbitmq/rabbitmq.conf",
"owner": "rabbitmq",
"perm": "0600"
},
......
root@*-pc:/etc/kolla/rabbitmq# docker restart rabbitmq
rabbitmq
root@*-pc:/etc/kolla/rabbitmq# docker exec rabbitmq rabbitmqctl eval 'application:get_env(lager, error_logger_hwm).'
{ok,4000}
Question:
- Is there any command to set the environment parameter such as
'application:get_env(lager, error_logger_hwm).'
for get the environment parameter. Also can't find any clue at rabbitmq configuration.
# docker exec rabbitmq rabbitmqctl eval '[lager:set_loghwm(error_logger_hwm, 4000)]'
Error (argument validation): "syntax error before: "
Arguments given:
eval [lager:set_loghwm(error_logger_hwm, 4000)]
Usage:
rabbitmqctl [-n <node>] [-l] [-q] eval <expr>
It also seems doesn't raise the limit, I don't know what's that meaning. Reference from RabbitMQ lager_error_logger_h dropped messages.
# docker exec rabbitmq rabbitmqctl eval 'application:get_env(lager, error_logger_hwm).'
{ok,50}
# docker exec rabbitmq rabbitmqctl eval '[lager:set_loghwm(H, 4000) || H <- gen_event:which_handlers(lager_event)].'
[{last_loghwm,50},ok]
# docker exec rabbitmq rabbitmqctl eval 'application:get_env(lager, error_logger_hwm).'
{ok,50}
# docker exec rabbitmq rabbitmqctl eval '[lager:set_loghwm(H, 4000) || H <- gen_event:which_handlers(lager_event)].'
[{last_loghwm,4000},ok]
# docker exec rabbitmq rabbitmqctl eval 'application:get_env(lager, error_logger_hwm).'
{ok,50}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以尝试
使用它。
https://www.erlang.org/man/application。 html#set_env-2
上面的代码不起作用,因为
lager
应用程序未启动,lager
无法调用。You can try
Maybe it works.
https://www.erlang.org/doc/man/application.html#set_env-2
The above code does not work because
lager
application doesn't start andlager
's function can't be called. https://hexdocs.pm/lager/lager.html#set_loghwm-2