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 | %% Syslog backend is using an old API for configuration and | ||||||
| %% does not support proplists. | %% does not support proplists. | ||||||
| generate_handler(syslog_lager_backend, HandlerConfig) -> | generate_handler(syslog_lager_backend=Backend, HandlerConfig) -> | ||||||
|     DefaultConfigVal = default_config_value(level), |     DefaultConfigVal = default_config_value(level), | ||||||
|     Level = proplists:get_value(level, HandlerConfig, DefaultConfigVal), |     Level = proplists:get_value(level, HandlerConfig, DefaultConfigVal), | ||||||
|     ok = app_utils:load_applications([syslog]), |     ok = configure_handler_backend(Backend), | ||||||
|     [{syslog_lager_backend, |     [{Backend, | ||||||
|      [Level, |      [Level, | ||||||
|       {}, |       {}, | ||||||
|       {lager_default_formatter, syslog_formatter_config()}]}]; |       {lager_default_formatter, syslog_formatter_config()}]}]; | ||||||
|  | @ -377,6 +377,11 @@ generate_handler(Backend, HandlerConfig) -> | ||||||
|         lists:ukeymerge(1, lists:ukeysort(1, HandlerConfig), |         lists:ukeymerge(1, lists:ukeysort(1, HandlerConfig), | ||||||
|                            lists:ukeysort(1, default_handler_config(Backend)))}]. |                            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) -> | default_handler_config(lager_console_backend) -> | ||||||
|     [{level, default_config_value(level)}, |     [{level, default_config_value(level)}, | ||||||
|      {formatter_config, default_config_value(formatter_config)}]; |      {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). |     lager_util:level_to_num(HandlerLevel) > lager_util:level_to_num(Level). | ||||||
| 
 | 
 | ||||||
| merge_lager_sink_handlers([{Name, Sink} | RestSinks], GeneratedSinks, Agg) -> | 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 |     case lists:keytake(Name, 1, GeneratedSinks) of | ||||||
|         {value, {Name, GenSink}, RestGeneratedSinks} -> |         {value, {Name, GenSink}, RestGeneratedSinks} -> | ||||||
|             Handlers = proplists:get_value(handlers, Sink, []), |             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 |             %% Remove handlers defined in previous starts | ||||||
|             ConfiguredHandlers = remove_rabbit_handlers(Handlers, FormerRabbitHandlers), |             ConfiguredHandlers = remove_rabbit_handlers(Handlers, FormerRabbitHandlers), | ||||||
|             NewHandlers = GenHandlers ++ ConfiguredHandlers, |             NewHandlers = GenHandlers ++ ConfiguredHandlers, | ||||||
|  |             ok = maybe_configure_handler_backends(NewHandlers), | ||||||
|             MergedSink = lists:keystore(rabbit_handlers, 1, |             MergedSink = lists:keystore(rabbit_handlers, 1, | ||||||
|                                         lists:keystore(handlers, 1, Sink, |                                         lists:keystore(handlers, 1, Sink, | ||||||
|                                                        {handlers, NewHandlers}), |                                                        {handlers, NewHandlers}), | ||||||
|                                         {rabbit_handlers, GenHandlers}), |                                         {rabbit_handlers, GenHandlers}), | ||||||
| 
 |  | ||||||
|             merge_lager_sink_handlers( |             merge_lager_sink_handlers( | ||||||
|                 RestSinks, |                 RestSinks, | ||||||
|                 RestGeneratedSinks, |                 RestGeneratedSinks, | ||||||
|  | @ -572,6 +589,12 @@ merge_lager_sink_handlers([{Name, Sink} | RestSinks], GeneratedSinks, Agg) -> | ||||||
|     end; |     end; | ||||||
| merge_lager_sink_handlers([], GeneratedSinks, Agg) -> GeneratedSinks ++ Agg. | 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() -> | list_expected_sinks() -> | ||||||
|     case application:get_env(rabbit, lager_extra_sinks) of |     case application:get_env(rabbit, lager_extra_sinks) of | ||||||
|         {ok, List} -> |         {ok, List} -> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue