@@ -196,7 +196,7 @@ configure_lager() ->
196
196
% % Set rabbit.log config variable based on environment.
197
197
prepare_rabbit_log_config (),
198
198
% % Configure syslog library.
199
- ok = configure_syslog (),
199
+ ok = configure_syslog_error_logger (),
200
200
% % At this point we should have rabbit.log application variable
201
201
% % configured to generate RabbitMQ log handlers.
202
202
GeneratedHandlers = generate_lager_handlers (),
@@ -266,14 +266,44 @@ configure_lager() ->
266
266
end ,
267
267
ok .
268
268
269
- configure_syslog () ->
269
+ configure_syslog_error_logger () ->
270
270
% % Disable error_logger forwarding to syslog if it's not configured
271
271
case application :get_env (syslog , syslog_error_logger ) of
272
272
undefined ->
273
- ok = application :set_env (syslog , syslog_error_logger , false );
273
+ application :set_env (syslog , syslog_error_logger , false );
274
274
_ -> ok
275
275
end .
276
276
277
+ - define (SYSLOG_LOCAL_IP , {ip ,{127 ,0 ,0 ,1 }}).
278
+ configure_syslog () ->
279
+ ok = app_utils :load_applications ([syslog ]),
280
+ % % https://github.com/schlagert/syslog#configuration
281
+ Protocol = case application :get_env (syslog , protocol ) of
282
+ undefined ->
283
+ {rfc3164 , udp , [{ip ,{127 ,0 ,0 ,1 }}]};
284
+ % % {protocol,
285
+ % % rfc3164 |
286
+ % % rfc5424 |
287
+ % % {rfc3164 | rfc5424, tcp | udp} |
288
+ % % {rfc3164 | rfc5424, udp, [gen_udp:option()]} |
289
+ % % {rfc3164 | rfc5424, tcp, [gen_tcp:option()]} |
290
+ % % {rfc5424, tls, [ssl:connect_option()]}
291
+ % % }
292
+ {ok , Rfc } when Rfc =:= rfc3164 ; Rfc =:= rfc5424 ->
293
+ {Rfc , udp , [? SYSLOG_LOCAL_IP ]};
294
+ {ok , {Rfc , Transport }} when Rfc =:= rfc3164 ; Rfc =:= rfc5424 ->
295
+ {Rfc , Transport , [? SYSLOG_LOCAL_IP ]};
296
+ {ok , {Rfc , Transport , Opts }} when Rfc =:= rfc3164 ; Rfc =:= rfc5424 ->
297
+ case proplists :lookup (ip , Opts ) of
298
+ none ->
299
+ {Rfc , Transport , [? SYSLOG_LOCAL_IP |Opts ]};
300
+ _ ->
301
+ {Rfc , Transport , Opts }
302
+ end
303
+ end ,
304
+ ok = application :unset_env (syslog , protocol ),
305
+ ok = application :set_env (syslog , protocol , Protocol ).
306
+
277
307
remove_rabbit_handlers (Handlers , FormerHandlers ) ->
278
308
lists :filter (fun (Handler ) ->
279
309
not lists :member (Handler , FormerHandlers )
@@ -317,6 +347,7 @@ lager_backend(exchange) -> lager_exchange_backend.
317
347
generate_handler (syslog_lager_backend , HandlerConfig ) ->
318
348
DefaultConfigVal = default_config_value (level ),
319
349
Level = proplists :get_value (level , HandlerConfig , DefaultConfigVal ),
350
+ ok = configure_syslog (),
320
351
ok = app_utils :start_applications ([syslog ]),
321
352
[{syslog_lager_backend ,
322
353
[Level ,
0 commit comments