Merge pull request #2181 from rabbitmq/rabbitmq-server-2044
Ensure syslog application is started when used as backend
This commit is contained in:
		
						commit
						5e6043ac59
					
				|  | @ -364,11 +364,11 @@ lager_backend(exchange) -> lager_exchange_backend. | |||
| 
 | ||||
| %% Syslog backend is using an old API for configuration and | ||||
| %% does not support proplists. | ||||
| generate_handler(syslog_lager_backend, HandlerConfig) -> | ||||
| generate_handler(syslog_lager_backend=Backend, HandlerConfig) -> | ||||
|     DefaultConfigVal = default_config_value(level), | ||||
|     Level = proplists:get_value(level, HandlerConfig, DefaultConfigVal), | ||||
|     ok = app_utils:load_applications([syslog]), | ||||
|     [{syslog_lager_backend, | ||||
|     ok = configure_handler_backend(Backend), | ||||
|     [{Backend, | ||||
|      [Level, | ||||
|       {}, | ||||
|       {lager_default_formatter, syslog_formatter_config()}]}]; | ||||
|  | @ -377,6 +377,11 @@ generate_handler(Backend, HandlerConfig) -> | |||
|         lists:ukeymerge(1, lists:ukeysort(1, HandlerConfig), | ||||
|                            lists:ukeysort(1, default_handler_config(Backend)))}]. | ||||
| 
 | ||||
| configure_handler_backend(syslog_lager_backend) -> | ||||
|     app_utils:load_applications([syslog]); | ||||
| configure_handler_backend(_Backend) -> | ||||
|     ok. | ||||
| 
 | ||||
| default_handler_config(lager_console_backend) -> | ||||
|     [{level, default_config_value(level)}, | ||||
|      {formatter_config, default_config_value(formatter_config)}]; | ||||
|  | @ -546,6 +551,18 @@ handler_level_more_verbose(Handler, Level) -> | |||
|     lager_util:level_to_num(HandlerLevel) > lager_util:level_to_num(Level). | ||||
| 
 | ||||
| merge_lager_sink_handlers([{Name, Sink} | RestSinks], GeneratedSinks, Agg) -> | ||||
|     %% rabbitmq/rabbitmq-server#2044. | ||||
|     %% We have to take into account that a sink's | ||||
|     %% handler backend may need additional configuration here. | ||||
|     %% {rabbit_log_federation_lager_event, [ | ||||
|     %%     {handlers, [ | ||||
|     %%         {lager_forwarder_backend, [lager_event,inherit]}, | ||||
|     %%         {syslog_lager_backend, [debug]} | ||||
|     %%     ]}, | ||||
|     %%     {rabbit_handlers, [ | ||||
|     %%         {lager_forwarder_backend, [lager_event,inherit]} | ||||
|     %%     ]} | ||||
|     %% ]} | ||||
|     case lists:keytake(Name, 1, GeneratedSinks) of | ||||
|         {value, {Name, GenSink}, RestGeneratedSinks} -> | ||||
|             Handlers = proplists:get_value(handlers, Sink, []), | ||||
|  | @ -555,11 +572,11 @@ merge_lager_sink_handlers([{Name, Sink} | RestSinks], GeneratedSinks, Agg) -> | |||
|             %% Remove handlers defined in previous starts | ||||
|             ConfiguredHandlers = remove_rabbit_handlers(Handlers, FormerRabbitHandlers), | ||||
|             NewHandlers = GenHandlers ++ ConfiguredHandlers, | ||||
|             ok = maybe_configure_handler_backends(NewHandlers), | ||||
|             MergedSink = lists:keystore(rabbit_handlers, 1, | ||||
|                                         lists:keystore(handlers, 1, Sink, | ||||
|                                                        {handlers, NewHandlers}), | ||||
|                                         {rabbit_handlers, GenHandlers}), | ||||
| 
 | ||||
|             merge_lager_sink_handlers( | ||||
|                 RestSinks, | ||||
|                 RestGeneratedSinks, | ||||
|  | @ -572,6 +589,12 @@ merge_lager_sink_handlers([{Name, Sink} | RestSinks], GeneratedSinks, Agg) -> | |||
|     end; | ||||
| merge_lager_sink_handlers([], GeneratedSinks, Agg) -> GeneratedSinks ++ Agg. | ||||
| 
 | ||||
| maybe_configure_handler_backends([]) -> | ||||
|     ok; | ||||
| maybe_configure_handler_backends([{Backend, _}|Backends]) -> | ||||
|     ok = configure_handler_backend(Backend), | ||||
|     maybe_configure_handler_backends(Backends). | ||||
| 
 | ||||
| list_expected_sinks() -> | ||||
|     case application:get_env(rabbit, lager_extra_sinks) of | ||||
|         {ok, List} -> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue