[ 
https://issues.apache.org/jira/browse/HDFS-9130?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Haohui Mai updated HDFS-9130:
-----------------------------
    Summary: Use GenericTestUtils#setLogLevel to the logging level  (was: Use 
GenericTestUtils#setLogLevel to set log4j or slf4j logger's level in unit tests)

> Use GenericTestUtils#setLogLevel to the logging level
> -----------------------------------------------------
>
>                 Key: HDFS-9130
>                 URL: https://issues.apache.org/jira/browse/HDFS-9130
>             Project: Hadoop HDFS
>          Issue Type: Task
>            Reporter: Mingliang Liu
>            Assignee: Mingliang Liu
>         Attachments: HDFS-9130.000.patch
>
>
> Currently we use both commons-logging and slf4j in {{hadoop-hdfs}}. To change 
> the logger level for dumping verbose debug information, there are many unit 
> tests that just cast the LOG object to a {{Log4JLogger}} and call 
> {{setLevel}} on that. e.g. in {{org.apache.hadoop.fs.TestFcHdfsSetUMask}}, 
> code sample as
> {code}
> ((Log4JLogger)FileSystem.LOG).getLogger().setLevel(Level.DEBUG);
> {code}
> One problem of this hard-coded approach is that we need to update the casting 
> code in test if we replace the log4j logger with slf4j. For example, as we're 
> creating a separate jar for hdfs-client (see [HDFS-6200]) which uses only 
> slf4j, we need to replace the log4j logger with slf4j logger, and to update 
> the casting for changing logger's level in unit tests as well.
> Instead, we can use the {{GenericTestUtils#setLogLevel}} (brought in 
> [HADOOP-11430]) method for both types of logger. This method internally 
> figures out the right thing to do based on the log / logger type. e.g.
> {code}
> GenericTestUtils.setLogLevel(FileSystem.LOG, Level.DEBUG);
> {code}



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

Reply via email to