title: Memory leak caused by Logger
body: <p>I <a href="http://frankkieviet.blogspot.de/2006/10/classloader-leaks-dreaded-permgen-space.html" rel="nofollow">read</a> that the following code leads to a memory leak as the Level class holds a reference to the CUSTOMLEVEL member from outside the Classloader:</p>
  
  <pre><code>public class LeakServlet extends HttpServlet {
    private static final String STATICNAME = "This leaks!";
    private static final Level CUSTOMLEVEL = new Level("test", 550) {}; // anon class!
  
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException, IOException {
        Logger.getLogger("test").log(CUSTOMLEVEL, "doGet called");
    }
  }
  </code></pre>
  
  <p>The question is how is the Level class loaded outside this particular classloader ?<br>
  Can I have some other instances within the java API of a similar behaviour?</p>