aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/listener/Log4jListener.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/listener/Log4jListener.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/listener/Log4jListener.java177
1 files changed, 177 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/listener/Log4jListener.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/listener/Log4jListener.java
new file mode 100644
index 00000000..829f1183
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/listener/Log4jListener.java
@@ -0,0 +1,177 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.tools.ant.listener;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.helpers.NullEnumeration;
+import org.apache.tools.ant.BuildEvent;
+import org.apache.tools.ant.BuildListener;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.Target;
+import org.apache.tools.ant.Task;
+
+
+/**
+ * Listener which sends events to Log4j logging system
+ *
+ */
+public class Log4jListener implements BuildListener {
+
+ /** Indicates if the listener was initialized. */
+ private final boolean initialized;
+
+ /**
+ * log category we log into
+ */
+ public static final String LOG_ANT = "org.apache.tools.ant";
+
+ /**
+ * Construct the listener and make sure there is a valid appender.
+ */
+ public Log4jListener() {
+ final Logger log = Logger.getLogger(LOG_ANT);
+ final Logger rootLog = Logger.getRootLogger();
+ initialized = !(rootLog.getAllAppenders() instanceof NullEnumeration);
+ if (!initialized) {
+ log.error("No log4j.properties in build area");
+ }
+ }
+
+ /**
+ * @see BuildListener#buildStarted
+ */
+ /** {@inheritDoc}. */
+ public void buildStarted(final BuildEvent event) {
+ if (initialized) {
+ final Logger log = Logger.getLogger(Project.class.getName());
+ log.info("Build started.");
+ }
+ }
+
+ /**
+ * @see BuildListener#buildFinished
+ */
+ /** {@inheritDoc}. */
+ public void buildFinished(final BuildEvent event) {
+ if (initialized) {
+ final Logger log = Logger.getLogger(Project.class.getName());
+ if (event.getException() == null) {
+ log.info("Build finished.");
+ } else {
+ log.error("Build finished with error.", event.getException());
+ }
+ }
+ }
+
+ /**
+ * @see BuildListener#targetStarted
+ */
+ /** {@inheritDoc}. */
+ public void targetStarted(final BuildEvent event) {
+ if (initialized) {
+ final Logger log = Logger.getLogger(Target.class.getName());
+ log.info("Target \"" + event.getTarget().getName() + "\" started.");
+ }
+ }
+
+ /**
+ * @see BuildListener#targetFinished
+ */
+ /** {@inheritDoc}. */
+ public void targetFinished(final BuildEvent event) {
+ if (initialized) {
+ final String targetName = event.getTarget().getName();
+ final Logger cat = Logger.getLogger(Target.class.getName());
+ if (event.getException() == null) {
+ cat.info("Target \"" + targetName + "\" finished.");
+ } else {
+ cat.error("Target \"" + targetName
+ + "\" finished with error.", event.getException());
+ }
+ }
+ }
+
+ /**
+ * @see BuildListener#taskStarted
+ */
+ /** {@inheritDoc}. */
+ public void taskStarted(final BuildEvent event) {
+ if (initialized) {
+ final Task task = event.getTask();
+ final Logger log = Logger.getLogger(task.getClass().getName());
+ log.info("Task \"" + task.getTaskName() + "\" started.");
+ }
+ }
+
+ /**
+ * @see BuildListener#taskFinished
+ */
+ /** {@inheritDoc}. */
+ public void taskFinished(final BuildEvent event) {
+ if (initialized) {
+ final Task task = event.getTask();
+ final Logger log = Logger.getLogger(task.getClass().getName());
+ if (event.getException() == null) {
+ log.info("Task \"" + task.getTaskName() + "\" finished.");
+ } else {
+ log.error("Task \"" + task.getTaskName()
+ + "\" finished with error.", event.getException());
+ }
+ }
+ }
+
+ /**
+ * @see BuildListener#messageLogged
+ */
+ /** {@inheritDoc}. */
+ public void messageLogged(final BuildEvent event) {
+ if (initialized) {
+ Object categoryObject = event.getTask();
+ if (categoryObject == null) {
+ categoryObject = event.getTarget();
+ if (categoryObject == null) {
+ categoryObject = event.getProject();
+ }
+ }
+
+ final Logger log
+ = Logger.getLogger(categoryObject.getClass().getName());
+ switch (event.getPriority()) {
+ case Project.MSG_ERR:
+ log.error(event.getMessage());
+ break;
+ case Project.MSG_WARN:
+ log.warn(event.getMessage());
+ break;
+ case Project.MSG_INFO:
+ log.info(event.getMessage());
+ break;
+ case Project.MSG_VERBOSE:
+ log.debug(event.getMessage());
+ break;
+ case Project.MSG_DEBUG:
+ log.debug(event.getMessage());
+ break;
+ default:
+ log.error(event.getMessage());
+ break;
+ }
+ }
+ }
+}