1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.taglib;
18
19 import javax.servlet.jsp.JspException;
20 import javax.servlet.jsp.PageContext;
21 import javax.servlet.jsp.tagext.BodyTagSupport;
22
23
24
25
26
27
28 abstract class LoggerAwareTagSupport extends BodyTagSupport {
29 private static final long serialVersionUID = 1L;
30
31 private transient Log4jTaglibLoggerContext loggerContext;
32
33 private transient Object logger;
34
35 protected LoggerAwareTagSupport() {
36 this.init();
37 }
38
39 protected void init() {
40 this.logger = null;
41 }
42
43 @Override
44 public final void release() {
45 super.release();
46 this.init();
47 }
48
49 @Override
50 public final void setPageContext(final PageContext pageContext) {
51 super.setPageContext(pageContext);
52 this.loggerContext = Log4jTaglibLoggerContext.getInstance(pageContext.getServletContext());
53 }
54
55 protected final Log4jTaglibLogger getLogger() throws JspException {
56 if (this.logger != null) {
57 return TagUtils.resolveLogger(this.loggerContext, this.logger, null);
58 }
59 Log4jTaglibLogger logger = TagUtils.getDefaultLogger(this.pageContext);
60 if (logger == null) {
61 final String name = this.pageContext.getPage().getClass().getName();
62 logger = TagUtils.resolveLogger(this.loggerContext, name, null);
63 TagUtils.setDefaultLogger(this.pageContext, logger);
64 }
65 return logger;
66 }
67
68 public final void setLogger(final Object logger) {
69 this.logger = logger;
70 }
71 }