1 18 19 package org.objectweb.util.monolog.wrapper.ant; 20 21 import org.apache.tools.ant.BuildEvent; 22 import org.apache.tools.ant.BuildListener; 23 import org.apache.tools.ant.Project; 24 import org.objectweb.util.monolog.Monolog; 25 import org.objectweb.util.monolog.api.BasicLevel; 26 import org.objectweb.util.monolog.api.Logger; 27 import org.objectweb.util.monolog.api.LoggerFactory; 28 29 37 public class MonologBuildListener implements BuildListener { 38 39 42 private LoggerFactory loggerFactory; 43 44 49 private Logger log; 50 51 public MonologBuildListener() { 52 this(Monolog.initialize()); 53 } 54 55 public MonologBuildListener(Logger log) { 56 this.log = log; 57 if (log == null) { 58 throw new IllegalArgumentException ("Non null Logger is required"); 59 } 60 } 61 62 public MonologBuildListener(LoggerFactory loggerFactory) { 63 this.loggerFactory = loggerFactory; 64 if (loggerFactory == null) { 65 throw new IllegalArgumentException ("Non null LoggerFactory is required"); 66 } 67 } 68 69 72 private void log(BuildEvent be) { 73 Logger logger; 74 if (log == null) { 75 logger = loggerFactory.getLogger( 76 be.getProject().getName() 77 + "." + be.getTarget().getName() 78 + "." + be.getTask().getTaskName()); 79 } else { 80 logger = log; 81 } 82 int level; 83 switch(be.getPriority()) { 84 case Project.MSG_ERR: 85 level = BasicLevel.ERROR; 86 break; 87 case Project.MSG_WARN: 88 level = BasicLevel.WARN; 89 break; 90 case Project.MSG_INFO: 91 level = BasicLevel.INFO; 92 break; 93 case Project.MSG_DEBUG: 94 case Project.MSG_VERBOSE: 95 default: 96 level = BasicLevel.DEBUG; 97 break; 98 } 99 if (be.getSource() != null) { 100 if (be.getException() != null) { 101 logger.log(level, be.getMessage(), be.getException(), be.getSource(), be.getSource()); 102 } else { 103 logger.log(level, be.getMessage(), be.getSource(), be.getSource()); 104 } 105 } else if (be.getException() != null) { 106 logger.log(level, be.getMessage(), be.getException()); 107 } else { 108 logger.log(level, be.getMessage()); 109 } 110 } 111 112 115 public void buildStarted(BuildEvent be) { 116 log(be); 117 } 118 public void buildFinished(BuildEvent be) { 119 log(be); 120 } 121 public void targetStarted(BuildEvent be) { 122 log(be); 123 } 124 public void targetFinished(BuildEvent be) { 125 log(be); 126 } 127 public void taskStarted(BuildEvent be) { 128 log(be); 129 } 130 public void taskFinished(BuildEvent be) { 131 log(be); 132 } 133 public void messageLogged(BuildEvent be) { 134 log(be); 135 } 136 } 137 | Popular Tags |