View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements. See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache license, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License. You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the license for the specific language governing permissions and
15   * limitations under the license.
16   */
17  
18  package org.apache.logging.log4j.core.config;
19  
20  import java.util.Objects;
21  
22  import org.apache.logging.log4j.Level;
23  import org.apache.logging.log4j.Marker;
24  import org.apache.logging.log4j.core.LogEvent;
25  import org.apache.logging.log4j.message.Message;
26  import org.apache.logging.log4j.util.Supplier;
27  
28  /**
29   * Reliability strategy that assumes reconfigurations will never take place.
30   */
31  public class DefaultReliabilityStrategy implements ReliabilityStrategy, LocationAwareReliabilityStrategy {
32  
33      private final LoggerConfig loggerConfig;
34  
35      public DefaultReliabilityStrategy(final LoggerConfig loggerConfig) {
36          this.loggerConfig = Objects.requireNonNull(loggerConfig, "loggerConfig is null");
37      }
38  
39      /*
40       * (non-Javadoc)
41       *
42       * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier,
43       * java.lang.String, java.lang.String, org.apache.logging.log4j.Marker, org.apache.logging.log4j.Level,
44       * org.apache.logging.log4j.message.Message, java.lang.Throwable)
45       */
46      @Override
47      public void log(final Supplier<LoggerConfig> reconfigured, final String loggerName, final String fqcn, final Marker marker, final Level level,
48              final Message data, final Throwable t) {
49          loggerConfig.log(loggerName, fqcn, marker, level, data, t);
50      }
51  
52      /*
53       * (non-Javadoc)
54       *
55       * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier,
56       * java.lang.String, java.lang.String, java.lang.StackTraceElement, org.apache.logging.log4j.Marker,
57       * org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable)
58       */
59      @Override
60      public void log(final Supplier<LoggerConfig> reconfigured, final String loggerName, final String fqcn,
61          final StackTraceElement location, final Marker marker, final Level level, final Message data,
62          final Throwable t) {
63          loggerConfig.log(loggerName, fqcn, location, marker, level, data, t);
64      }
65  
66      /*
67       * (non-Javadoc)
68       *
69       * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#log(org.apache.logging.log4j.util.Supplier,
70       * org.apache.logging.log4j.core.LogEvent)
71       */
72      @Override
73      public void log(final Supplier<LoggerConfig> reconfigured, final LogEvent event) {
74          loggerConfig.log(event);
75      }
76  
77      /*
78       * (non-Javadoc)
79       *
80       * @see
81       * org.apache.logging.log4j.core.config.ReliabilityStrategy#beforeLogEvent(org.apache.logging.log4j.core.config.
82       * LoggerConfig, org.apache.logging.log4j.util.Supplier)
83       */
84      @Override
85      public LoggerConfig getActiveLoggerConfig(final Supplier<LoggerConfig> next) {
86          return this.loggerConfig;
87      }
88  
89      /*
90       * (non-Javadoc)
91       *
92       * @see org.apache.logging.log4j.core.config.ReliabilityStrategy#afterLogEvent()
93       */
94      @Override
95      public void afterLogEvent() {
96          // no action
97      }
98  
99      /*
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 }