[ 
https://issues.apache.org/jira/browse/HIVE-15531?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15803961#comment-15803961
 ] 

Dhiraj Kumar commented on HIVE-15531:
-------------------------------------

[~sershe] I thought about test cases with below approach 
a) Manipulating classpath at runtime to put log4j 1.2 before log4j 2.4 
libraries and showcasing the fact that commons-log will pick older version of 
logger. 
b) Keeping log4j 1.2 in beginning and putting log4j-jcl anywhere in classpath 
and showing that commons-logging will pick Log4j 2.4 

The problem with this approach I have to manipulate classpath at runtime which 
might affect other tests downstream. Moreover, I am not able to find a clean 
solution to do it. 

Would a trivial test like this suffice? 

{code}
    Log log = LogFactory.getLog(CommonsLoggingTest.class);
    assertEquals(log.getClass(),org.apache.logging.log4j.jcl.Log4jLog.class);
{code}

> Hive breaks Hadoop commons logging with log4j2
> ----------------------------------------------
>
>                 Key: HIVE-15531
>                 URL: https://issues.apache.org/jira/browse/HIVE-15531
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 2.1.0
>            Reporter: Dhiraj Kumar
>            Assignee: Dhiraj Kumar
>            Priority: Minor
>         Attachments: HIVE-15531.patch
>
>
> Hadoop (2.7), which is using Commons-logging is not compatible with log4j2 
> without bridge. 
> The bridge is missing in Hive. 
> This leads to a problem whereby commons-logging initialises a log4j (1.2) 
> version Logger, does not configure it properly since configuration for it is 
> missing and sends logging output to stdout (the default). 



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

Reply via email to