KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > mycompany > listeners > CommonsLoggingListener


1 package com.mycompany.listeners;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogConfigurationException;
5 import org.apache.commons.logging.LogFactory;
6
7 import com.puppycrawl.tools.checkstyle.Checker;
8 import com.puppycrawl.tools.checkstyle.api.AuditEvent;
9 import com.puppycrawl.tools.checkstyle.api.AuditListener;
10 import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
11 import com.puppycrawl.tools.checkstyle.api.SeverityLevel;
12
13 /**
14  * Jakarta Commons Logging listener.
15  * Note: With Ant, do not use the SimpleLog as your logger implementation as it
16  * causes an infinite loop since it writes to System.err, which Ant traps
17  * and reroutes to the logger/listener layer.
18  * Based on
19  * <a HREF="http://ant.apache.org/index.html">org.apache.tools.ant.listener.CommonsLoggingListener>org.apache.tools.ant.listener.CommonsLoggingListener</a>
20  * @author Rick Giles
21  */

22 public class CommonsLoggingListener
23     implements AuditListener
24 {
25     /** cushion for avoiding StringBuffer.expandCapacity */
26     private static final int BUFFER_CUSHION = 30;
27
28     /** true if the log factory has been initialized */
29     private boolean mInitialized = false;
30
31     /** Factory for creating org.apache.commons.logging.Log instances */
32     private LogFactory mLogFactory;
33
34     /**
35      * Creates a <code>CommonsLoggingListener. Initializes its log factory.
36      * @throws CheckstyleException if if the implementation class is not
37      * available or cannot be instantiated.
38      */

39     public CommonsLoggingListener() throws CheckstyleException
40     {
41         try {
42             mLogFactory = LogFactory.getFactory();
43         }
44         catch (LogConfigurationException e) {
45             throw new CheckstyleException("log configuration exception", e);
46         }
47         mInitialized = true;
48     }
49
50     /** @see com.puppycrawl.tools.checkstyle.api.AuditListener */
51     public void auditStarted(AuditEvent aEvt)
52     {
53         if (mInitialized) {
54             final Log log = mLogFactory.getInstance(Checker.class);
55             log.info("Audit started.");
56         }
57     }
58
59     /** @see com.puppycrawl.tools.checkstyle.api.AuditListener */
60     public void auditFinished(AuditEvent aEvt)
61     {
62         if (mInitialized) {
63             final Log log = mLogFactory.getInstance(Checker.class);
64             log.info("Audit finished.");
65         }
66     }
67
68     /** @see com.puppycrawl.tools.checkstyle.api.AuditListener */
69     public void fileStarted(AuditEvent aEvt)
70     {
71         if (mInitialized) {
72             final Log log = mLogFactory.getInstance(Checker.class);
73             log.info("File \"" + aEvt.getFileName() + "\" started.");
74         }
75     }
76
77     /** @see com.puppycrawl.tools.checkstyle.api.AuditListener */
78     public void fileFinished(AuditEvent aEvt)
79     {
80         if (mInitialized) {
81             final Log log = mLogFactory.getInstance(Checker.class);
82             log.info("File \"" + aEvt.getFileName() + "\" finished.");
83         }
84     }
85
86     /** @see com.puppycrawl.tools.checkstyle.api.AuditListener */
87     public void addError(AuditEvent aEvt)
88     {
89         final SeverityLevel severityLevel = aEvt.getSeverityLevel();
90         if (mInitialized && !SeverityLevel.IGNORE.equals(severityLevel)) {
91             final Log log = mLogFactory.getInstance(aEvt.getSourceName());
92
93             final String JavaDoc fileName = aEvt.getFileName();
94             final String JavaDoc message = aEvt.getMessage();
95
96             // avoid StringBuffer.expandCapacity
97
final int bufLen = message.length() + BUFFER_CUSHION;
98             final StringBuffer JavaDoc sb = new StringBuffer JavaDoc(bufLen);
99
100             sb.append("Line: ").append(aEvt.getLine());
101             if (aEvt.getColumn() > 0) {
102                 sb.append(" Column: ").append(aEvt.getColumn());
103             }
104             sb.append(" Message: ").append(message);
105
106             if (aEvt.getSeverityLevel().equals(SeverityLevel.WARNING)) {
107                 log.warn(sb.toString());
108             }
109             else if (aEvt.getSeverityLevel().equals(SeverityLevel.INFO)) {
110                 log.info(sb.toString());
111             }
112             else {
113                 log.error(sb.toString());
114             }
115         }
116     }
117
118     /** @see com.puppycrawl.tools.checkstyle.api.AuditListener */
119     public void addException(AuditEvent aEvt, Throwable JavaDoc aThrowable)
120     {
121         if (mInitialized) {
122             final Log log = mLogFactory.getInstance(aEvt.getSourceName());
123             log.error("Error auditing " + aEvt.getFileName(), aThrowable);
124         }
125     }
126
127 }
128
Popular Tags