1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 package org.apache.maven.slf4j; 20 21 import org.slf4j.event.Level; 22 23 /** 24 * A proxy which enhances the MavenSimpleLogger with functionality to track whether a logging threshold is hit. 25 * Currently only support WARN and ERROR states, since it's been used for the --fail-on-severity flag. 26 */ 27 public class MavenFailOnSeverityLogger extends MavenSimpleLogger { 28 private final DefaultLogLevelRecorder logLevelRecorder; 29 30 MavenFailOnSeverityLogger(String name, DefaultLogLevelRecorder logLevelRecorder) { 31 super(name); 32 this.logLevelRecorder = logLevelRecorder; 33 } 34 35 /** 36 * A simple implementation which always logs messages of level WARN 37 * according to the format outlined above. 38 */ 39 @Override 40 public void warn(String msg) { 41 super.warn(msg); 42 logLevelRecorder.record(Level.WARN); 43 } 44 45 /** 46 * Perform single parameter substitution before logging the message of level 47 * WARN according to the format outlined above. 48 */ 49 @Override 50 public void warn(String format, Object arg) { 51 super.warn(format, arg); 52 logLevelRecorder.record(Level.WARN); 53 } 54 55 /** 56 * Perform double parameter substitution before logging the message of level 57 * WARN according to the format outlined above. 58 */ 59 @Override 60 public void warn(String format, Object arg1, Object arg2) { 61 super.warn(format, arg1, arg2); 62 logLevelRecorder.record(Level.WARN); 63 } 64 65 /** 66 * Perform double parameter substitution before logging the message of level 67 * WARN according to the format outlined above. 68 */ 69 @Override 70 public void warn(String format, Object... argArray) { 71 super.warn(format, argArray); 72 logLevelRecorder.record(Level.WARN); 73 } 74 75 /** Log a message of level WARN, including an exception. */ 76 @Override 77 public void warn(String msg, Throwable t) { 78 super.warn(msg, t); 79 logLevelRecorder.record(Level.WARN); 80 } 81 82 /** 83 * A simple implementation which always logs messages of level ERROR 84 * according to the format outlined above. 85 */ 86 @Override 87 public void error(String msg) { 88 super.error(msg); 89 logLevelRecorder.record(Level.ERROR); 90 } 91 92 /** 93 * Perform single parameter substitution before logging the message of level 94 * ERROR according to the format outlined above. 95 */ 96 @Override 97 public void error(String format, Object arg) { 98 super.error(format, arg); 99 logLevelRecorder.record(Level.ERROR); 100 } 101 102 /** 103 * Perform double parameter substitution before logging the message of level 104 * ERROR according to the format outlined above. 105 */ 106 @Override 107 public void error(String format, Object arg1, Object arg2) { 108 super.error(format, arg1, arg2); 109 logLevelRecorder.record(Level.ERROR); 110 } 111 112 /** 113 * Perform double parameter substitution before logging the message of level 114 * ERROR according to the format outlined above. 115 */ 116 @Override 117 public void error(String format, Object... argArray) { 118 super.error(format, argArray); 119 logLevelRecorder.record(Level.ERROR); 120 } 121 122 /** Log a message of level ERROR, including an exception. */ 123 @Override 124 public void error(String msg, Throwable t) { 125 super.error(msg, t); 126 logLevelRecorder.record(Level.ERROR); 127 } 128 }