001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache license, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the license for the specific language governing permissions and 015 * limitations under the license. 016 */ 017 018package org.apache.logging.log4j.core.config; 019 020import java.util.Objects; 021 022import org.apache.logging.log4j.Level; 023import org.apache.logging.log4j.Marker; 024import org.apache.logging.log4j.core.LogEvent; 025import org.apache.logging.log4j.message.Message; 026import org.apache.logging.log4j.util.Supplier; 027 028/** 029 * Reliability strategy that assumes reconfigurations will never take place. 030 */ 031public class DefaultReliabilityStrategy implements ReliabilityStrategy, LocationAwareReliabilityStrategy { 032 033 private final LoggerConfig loggerConfig; 034 035 public DefaultReliabilityStrategy(final LoggerConfig loggerConfig) { 036 this.loggerConfig = Objects.requireNonNull(loggerConfig, "loggerConfig is null"); 037 } 038 039 /* 040 * (non-Javadoc) 041 * 042 * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier, 043 * java.lang.String, java.lang.String, org.apache.logging.log4j.Marker, org.apache.logging.log4j.Level, 044 * org.apache.logging.log4j.message.Message, java.lang.Throwable) 045 */ 046 @Override 047 public void log(final Supplier<LoggerConfig> reconfigured, final String loggerName, final String fqcn, final Marker marker, final Level level, 048 final Message data, final Throwable t) { 049 loggerConfig.log(loggerName, fqcn, marker, level, data, t); 050 } 051 052 /* 053 * (non-Javadoc) 054 * 055 * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier, 056 * java.lang.String, java.lang.String, java.lang.StackTraceElement, org.apache.logging.log4j.Marker, 057 * org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable) 058 */ 059 @Override 060 public void log(final Supplier<LoggerConfig> reconfigured, final String loggerName, final String fqcn, 061 final StackTraceElement location, final Marker marker, final Level level, final Message data, 062 final Throwable t) { 063 loggerConfig.log(loggerName, fqcn, location, marker, level, data, t); 064 } 065 066 /* 067 * (non-Javadoc) 068 * 069 * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier, 070 * org.apache.logging.log4j.core.LogEvent) 071 */ 072 @Override 073 public void log(final Supplier<LoggerConfig> reconfigured, final LogEvent event) { 074 loggerConfig.log(event); 075 } 076 077 /* 078 * (non-Javadoc) 079 * 080 * @see 081 * org.apache.logging.log4j.core.config.ReliabilityStrategy#beforeLogEvent(org.apache.logging.log4j.core.config. 082 * LoggerConfig, org.apache.logging.log4j.util.Supplier) 083 */ 084 @Override 085 public LoggerConfig getActiveLoggerConfig(final Supplier<LoggerConfig> next) { 086 return this.loggerConfig; 087 } 088 089 /* 090 * (non-Javadoc) 091 * 092 * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#afterLogEvent() 093 */ 094 @Override 095 public void afterLogEvent() { 096 // no action 097 } 098 099 /* 100 * (non-Javadoc) 101 * 102 * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#beforeStopAppenders() 103 */ 104 @Override 105 public void beforeStopAppenders() { 106 // no action 107 } 108 109 /* 110 * (non-Javadoc) 111 * 112 * @see 113 * org.apache.logging.log4j.core.config.ReliabilityStrategy#beforeStopConfiguration(org.apache.logging.log4j.core 114 * .config.Configuration) 115 */ 116 @Override 117 public void beforeStopConfiguration(final Configuration configuration) { 118 // no action 119 } 120 121}