anchor.diff:  %% ====================================================================
   
   perform_10_logs(0) ->
  -  ok;
  +    ok;
   
   perform_10_logs(NumberOfRepeats) ->
  -  lager:log(debug, [], "test_log"),
  -  lager:log(debug, [], "test_log"),
  -  lager:log(info, [], "test_log"),
  -  lager:log(info, [], "test_log"),
  -
  -  lager:log(notice, [{pid, self()}], "test_log"),
  -  lager:log(warning, [{pid, self()}], "test_log"),
  -
  -  lager:log(error, [{tag, tag_value}], "test_log"),
  -  lager:log(critical, [{tag, tag_value}], "test_log"),
  -
  -  lager:log(alert, [{tag, tag_value}, {node, node()}], "test_log"),
  -  lager:log(emergency, [{tag, tag_value}, {node, node()}], "test_log"),
  -
  -  perform_10_logs(NumberOfRepeats - 1).
  +    % Error logger logs
  +    error_logger:error_msg("test_log"),
  +    error_logger:error_msg("test_log"),
  +
  +    error_logger:info_msg("test_log"),
  +    error_logger:info_msg("test_log"),
  +
  +    % Lager logs
  +    lager:log(info, [], "test_log"),
  +    lager:log(info, [], "test_log"),
  +
  +    lager:log(error, [{tag, tag_value}], "test_log"),
  +    lager:log(critical, [{tag, tag_value}], "test_log"),
  +
  +    lager:log(alert, [{tag, tag_value}, {node, node()}], "test_log"),
  +    lager:log(emergency, [{tag, tag_value}, {node, node()}], "test_log"),
  +
  +    perform_10_logs(NumberOfRepeats - 1).
   
   
   get_lager_traces() ->
  -    gen_event:which_handlers(lager_event).   
  +    gen_event:which_handlers(lager_event).
   
   
   %% This test function checks logger functionality of switching console loglevel (logger module)
  -check_console_loglevel_functionalities() ->  
  -  try
  -    ?assertEqual(ok, logger:set_console_loglevel(0)),
  -    ?assertEqual(logger:get_console_loglevel(), 0),
  -
  -    ?assertEqual(ok, logger:set_console_loglevel(info)),
  -    ?assertEqual(logger:get_console_loglevel(), 1),
  -
  -    ?assertEqual(ok, logger:set_console_loglevel(error)),
  -    ?assertEqual(logger:get_console_loglevel(), 4),
  -
  -    ?assertEqual(ok, logger:set_console_loglevel(default)),
  -    {ok, Proplist} = application:get_env(lager, handlers),
  -    Default = proplists:get_value(lager_console_backend, Proplist),
  -    ?assertEqual(logger:get_console_loglevel(), logger:loglevel_atom_to_int(Default)),
  -
  -    ok
  -  catch Type:Message ->
  -    {Type, Message}
  -  end.
  -
  +check_console_loglevel_functionalities() ->
  +    try
  +        ?assertEqual(ok, logger:set_console_loglevel(0)),
  +        ?assertEqual(logger:get_console_loglevel(), 0),
  +
  +        ?assertEqual(ok, logger:set_console_loglevel(info)),
  +        ?assertEqual(logger:get_console_loglevel(), 1),
  +
  +        ?assertEqual(ok, logger:set_console_loglevel(error)),
  +        ?assertEqual(logger:get_console_loglevel(), 4),
  +
  +        ?assertEqual(ok, logger:set_console_loglevel(default)),
  +        {ok, Proplist} = application:get_env(lager, handlers),
  +        Default = proplists:get_value(lager_console_backend, Proplist),
  +        ?assertEqual(logger:get_console_loglevel(), logger:loglevel_atom_to_int(Default)),
  +
  +        ok
  +    catch Type:Message ->
  +        {Type, Message}
  +    end.
   
   
   %% ====================================================================
  
positive.code: %% ====================================================================
  
  init_per_testcase(logging_test, Config) ->
    ?INIT_DIST_TEST,
    nodes_manager:start_deps_for_tester_node(),
  
    Nodes = nodes_manager:start_test_on_nodes(5),
    [CCM | _] = Nodes,
  
    StartLog = nodes_manager:start_app_on_nodes(Nodes, 
      [[{node_type, ccm}, 
        {dispatcher_port, 5055}, 
        {ccm_nodes, [CCM]}, 
        {dns_port, 1308}, {control_panel_port, 2308}, {control_panel_redirect_port, 1354}, {rest_port, 3308}, {heart_beat, 1}],
      [{node_type, worker}, 
        {dispatcher_port, 5056}, 
        {ccm_nodes, [CCM]}, 
        {dns_port, 1309}, {control_panel_port, 2309}, {control_panel_redirect_port, 1355}, {rest_port, 3309}, {heart_beat, 1}],
      [{node_type, worker}, 
        {dispatcher_port, 5057}, 
        {ccm_nodes, [CCM]}, 
        {dns_port, 1310}, {control_panel_port, 2310}, {control_panel_redirect_port, 1356}, {rest_port, 3310}, {heart_beat, 1}],
      [{node_type, worker}, 
        {dispatcher_port, 5058}, 
        {ccm_nodes, [CCM]}, 
        {dns_port, 1311}, {control_panel_port, 2311}, {control_panel_redirect_port, 1357}, {rest_port, 3311}, {heart_beat, 1}],
      [{node_type, worker}, 
        {dispatcher_port, 5059}, 
        {ccm_nodes, [CCM]}, 
        {dns_port, 1312}, {control_panel_port, 2312}, {control_panel_redirect_port, 1358}, {rest_port, 3312}, {heart_beat, 1}]]),
  
    Assertions = [{false, lists:member(error, Nodes)}, {false, lists:member(error, StartLog)}],
    lists:append([{nodes, Nodes}, {assertions, Assertions}], Config);
  
  
  init_per_testcase(init_and_cleanup_test, Config) ->
    ?INIT_DIST_TEST,
    nodes_manager:start_deps_for_tester_node(),
  
    Nodes = nodes_manager:start_test_on_nodes(2),
    [CCM | _] = Nodes,
     
    StartLog = nodes_manager:start_app_on_nodes(Nodes, 
      [[{node_type, ccm}, 
        {dispatcher_port, 5055}, 
        {ccm_nodes, [CCM]}, 
        {dns_port, 1308}, {control_panel_port, 2308}, {control_panel_redirect_port, 1354},  {rest_port, 3308}, {initialization_time, 1}, {heart_beat, 1}],
      [{node_type, worker}, 
        {dispatcher_port, 5056}, 
        {ccm_nodes, [CCM]}, 
        {dns_port, 1309}, {control_panel_port, 2309}, {control_panel_redirect_port, 1355},  {rest_port, 3309}, {heart_beat, 1}]]),
  
    Assertions = [{false, lists:member(error, Nodes)}, {false, lists:member(error, StartLog)}],
    lists:append([{nodes, Nodes}, {assertions, Assertions}], Config).
  
  
  end_per_testcase(_, Config) ->
    Nodes = ?config(nodes, Config),
    StopLog = nodes_manager:stop_app_on_nodes(Nodes),
    StopAns = nodes_manager:stop_nodes(Nodes),
    ?assertEqual(false, lists:member(error, StopLog)),
    ?assertEqual(ok, StopAns).
  
negative.code: %% central_logger subscribing and log stream
  
  logging_test(Config) ->
      nodes_manager:check_start_assertions(Config),
  
      NodesUp = ?config(nodes, Config),
      [CCM, W1, W2, W3, W4] = NodesUp,
  
      % Init cluster
      gen_server:cast({?Node_Manager_Name, CCM}, do_heart_beat),
      gen_server:cast({global, ?CCM}, {set_monitoring, on}),
      nodes_manager:wait_for_cluster_cast(),
      nodes_manager:wait_for_nodes_registration(length(NodesUp) - 1),
      gen_server:cast({global, ?CCM}, init_cluster),
      nodes_manager:wait_for_cluster_init(),
  
      % Subscribe for log stream
      Pid = self(),
      ?assertEqual(ok, gen_server:call({?Dispatcher_Name, W3}, {central_logger, 1, {subscribe, cluster, Pid}}, 1000)),
  
      % Every call will produce [10 * Arg1] of logs
      ?assertEqual(ok, rpc:call(CCM, ?MODULE, perform_10_logs, [5])),
      ?assertEqual(ok, rpc:call(W1, ?MODULE, perform_10_logs, [3])),
      ?assertEqual(ok, rpc:call(W2, ?MODULE, perform_10_logs, [2])),
      ?assertEqual(ok, rpc:call(W3, ?MODULE, perform_10_logs, [11])),
      ?assertEqual(ok, rpc:call(W4, ?MODULE, perform_10_logs, [4])),
  
      % Assert that logs arrived and are correctly tagged
      check_logs(250),
  
      % Unsubscribe from log stream
      ?assertEqual(ok, gen_server:call({?Dispatcher_Name, W3}, {central_logger, 1, {unsubscribe, cluster, Pid}}, 1000)),
      % Ask for subscribers list
      ?assertEqual(ok, gen_server:call({?Dispatcher_Name, W3}, {central_logger, 1, self(), message_id, get_subscribers}, 1000)),
      % To confirm, that this pid is no longer subscribed
      ?assertEqual([], receive {worker_answer, message_id, Response} -> Response after 1000 -> timeout end).
  
  
  %% ====================================================================
  