Jay Doane created COUCHDB-2970:
----------------------------------

             Summary: config:set("log","level",...) fails to change lager 
backend levels
                 Key: COUCHDB-2970
                 URL: https://issues.apache.org/jira/browse/COUCHDB-2970
             Project: CouchDB
          Issue Type: Bug
          Components: Logging
            Reporter: Jay Doane


The following remsh session shows that at first, both config log level and 
lager_file_backend levels are the same (info), but after we use config to 
change the level to notice, the lager level remains at info:

{code}
([email protected])26> config:get("log","level").
"info"
([email protected])27> gen_event:which_handlers(lager_event).
[{lager_file_backend,"/var/log/cloudant/cloudant.log"},
 lager_backend_throttle]
([email protected])28> 
lager:get_loglevel({lager_file_backend,"/var/log/cloudant/cloudant.log"}).
info
([email protected])29> config:set("log","level","notice",false).
ok
([email protected])30> 
lager:get_loglevel({lager_file_backend,"/var/log/cloudant/cloudant.log"}).
info
{code}

The problem occurs because 
https://github.com/apache/couchdb-couch-log-lager/blob/master/src/couch_log_lager.erl#L67
 obtains the handlers from application:get_env(lager, handlers), which returns 
the a structure defined in sys.config, but it should use 
gen_event:which_handlers(lager_event), which returns the actual list of 
handlers:

{code}
([email protected])31> application:get_env(lager, handlers).                       
         {ok,[{lager_file_backend,
         [{file,"/var/log/cloudant/cloudant.log"},
          {formatter,lager_default_formatter},
          {formatter_config,
              [date," ",time," [",severity,"] ",node," ",pid," ",message,
               "\n"]}]}]}
([email protected])32> gen_event:which_handlers(lager_event).                      
         [{lager_file_backend,"/var/log/cloudant/cloudant.log"},
 lager_backend_throttle]
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to