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 22 public class CommonsLoggingListener 23 implements AuditListener 24 { 25 26 private static final int BUFFER_CUSHION = 30; 27 28 29 private boolean mInitialized = false; 30 31 32 private LogFactory mLogFactory; 33 34 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 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 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 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 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 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 fileName = aEvt.getFileName(); 94 final String message = aEvt.getMessage(); 95 96 final int bufLen = message.length() + BUFFER_CUSHION; 98 final StringBuffer sb = new StringBuffer (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 119 public void addException(AuditEvent aEvt, Throwable 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 |