title: Powermock - mocking org.apache.log4j.Logger? How can I?
body: <p>I'm wondering what is the easiest and most concise way to mock org.apache.log4j with powermock (and mockito).   </p>
  
  <p>I have tried a few approaches (which I won't illustrate here) but have not yet found a way to achieve what I want.  I have created a simple class to test below and I want to call the run method and verify that the log.info message has been called.  How do I do this? I'm sure it's quite easy when you know how!</p>
  
  <p>(I'm using @Rule as I want to run under spring test but that should make no difference).</p>
  
  <p>Thanks a millon for the correct code.</p>
  
  <pre><code>import org.apache.log4j.Logger;
  import org.junit.Rule;
  import org.junit.Test;
  import org.powermock.core.classloader.annotations.PrepareForTest;
  import org.powermock.modules.junit4.rule.PowerMockRule;
  
  public class MockLog4JTest
  {
      @Rule
      public PowerMockRule rule = new PowerMockRule();
  
      private static class ClassUnderTest
      {
          private static Logger logger = Logger.getLogger(ClassUnderTest.class);
  
          public void run() {
              logger.info("Hello.");
          }
  
      }
  
      @Test
      public void testLog()
      {
          ClassUnderTest classUnderTest = new ClassUnderTest();
          classUnderTest.run();
      }
  
  }
  </code></pre>