11/*
2- * Copyright 2022-2023 Vitalij Berdinskih
2+ * Copyright 2022-2024 Vitalij Berdinskih
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
3333import org .slf4j .ILoggerFactory ;
3434import org .slf4j .Logger ;
3535import org .slf4j .event .Level ;
36- import org .slf4j .helpers .Util ;
36+ import org .slf4j .helpers .Reporter ;
3737
3838/**
3939 * Responsible for building {@link Logger} using the {@link AWSLambdaLogger} implementation.
@@ -126,6 +126,11 @@ public class AWSLambdaLoggerFactory implements ILoggerFactory {
126126 private final boolean showThreadId ;
127127 private final boolean showThreadName ;
128128
129+ /**
130+ * AWS Lambda Logger Factory.
131+ * <p>
132+ * Looking for a configuration file <em>lambda-logger.properties</em>.
133+ */
129134 public AWSLambdaLoggerFactory () {
130135 this (CONFIGURATION_FILE );
131136 }
@@ -134,12 +139,11 @@ public AWSLambdaLoggerFactory() {
134139 AWSLambdaLoggerFactory (String configurationFile ) {
135140 loggers = new ConcurrentHashMap <>();
136141 properties = loadProperties (configurationFile );
137- dateTimeFormat = getDateTimeFormat (AWSLambdaLoggerConfigurationProperty . DateTimeFormat );
142+ dateTimeFormat = getDateTimeFormat ();
138143 // logLevelSeparator and markerSeparator should be resolved before defaultLoggerLevel
139144 logLevelSeparator = getStringProperty (AWSLambdaLoggerConfigurationProperty .LogLevelSeparator );
140145 markerSeparator = getStringProperty (AWSLambdaLoggerConfigurationProperty .MarkerSeparator );
141- defaultLoggerLevel = getLoggerLevelProperty (
142- AWSLambdaLoggerConfigurationProperty .DefaultLogLevel );
146+ defaultLoggerLevel = getLoggerLevelProperty ();
143147 levelInBrackets = getBooleanProperty (AWSLambdaLoggerConfigurationProperty .LevelInBrackets );
144148 requestId = getStringProperty (AWSLambdaLoggerConfigurationProperty .RequestId );
145149 showDateTime = getBooleanProperty (AWSLambdaLoggerConfigurationProperty .ShowDateTime );
@@ -192,46 +196,47 @@ private boolean getBooleanProperty(AWSLambdaLoggerConfigurationProperty configur
192196 return Boolean .parseBoolean (getStringProperty (configurationProperty ));
193197 }
194198
195- private DateFormat getDateTimeFormat (AWSLambdaLoggerConfigurationProperty configurationProperty ) {
196- String dateTimeFormatString = getStringProperty (configurationProperty );
199+ private DateFormat getDateTimeFormat () {
200+ var dateTimeFormatString = getStringProperty (
201+ AWSLambdaLoggerConfigurationProperty .DateTimeFormat );
197202
198203 if (nonNull (dateTimeFormatString )) {
199204 try {
200205 return new SimpleDateFormat (dateTimeFormatString );
201206 } catch (IllegalArgumentException exception ) {
202- Util . report ( "Bad date format in " + CONFIGURATION_FILE + "; will output relative time" ,
203- exception );
207+ Reporter . warn (
208+ "Bad date-time format in " + CONFIGURATION_FILE + "; will output relative time" );
204209 }
205210 }
206211
207212 return null ;
208213 }
209214
210- private List <AWSLambdaLoggerLevel > getLoggerLevelProperty (
211- AWSLambdaLoggerConfigurationProperty configurationProperty ) {
212- String value = System .getenv (configurationProperty .variableName );
215+ private List <AWSLambdaLoggerLevel > getLoggerLevelProperty () {
216+ var defaultLogLevelProperty = AWSLambdaLoggerConfigurationProperty . DefaultLogLevel ;
217+ var value = System .getenv (defaultLogLevelProperty .variableName );
213218
214219 if (nonNull (value )) {
215220 try {
216221 return parseLoggerLevelString (value );
217222 } catch (IllegalArgumentException exception ) {
218- Util .report ("Bad log level in the variable " + configurationProperty .variableName ,
219- exception );
223+ Reporter .warn ("Bad log level in the variable " + defaultLogLevelProperty .variableName );
220224 }
221225 }
222226
223- value = getProperties ().getProperty (configurationProperty .propertyName );
227+ value = getProperties ().getProperty (defaultLogLevelProperty .propertyName );
224228 if (nonNull (value )) {
225229 try {
226230 return parseLoggerLevelString (value );
227231 } catch (IllegalArgumentException exception ) {
228- Util .report ("Bad log level in the property " + configurationProperty .propertyName + " of "
229- + CONFIGURATION_FILE , exception );
232+ Reporter .warn (
233+ "Bad log level in the property " + defaultLogLevelProperty .propertyName + " of "
234+ + CONFIGURATION_FILE );
230235 }
231236 }
232237
233238 return List .of (
234- AWSLambdaLoggerLevel .builder ().level (Level .valueOf (configurationProperty .defaultValue ))
239+ AWSLambdaLoggerLevel .builder ().level (Level .valueOf (defaultLogLevelProperty .defaultValue ))
235240 .build ());
236241 }
237242
@@ -252,7 +257,7 @@ private List<AWSLambdaLoggerLevel> getLoggerLevels(String loggerName) {
252257 try {
253258 loggerLevels = parseLoggerLevelString (loggerLevelString );
254259 } catch (IllegalArgumentException exception ) {
255- Util . report ("Bad log level of the logger " + loggerName , exception );
260+ Reporter . warn ("Bad log level of the logger " + loggerName );
256261 }
257262 }
258263
@@ -304,7 +309,7 @@ private Properties loadProperties(String configurationFile) {
304309 properties .load (configurationInputStream );
305310 } catch (IOException | NullPointerException e ) {
306311 // ignored
307- Util . report (CONFIGURATION_FILE + " is missed" );
312+ Reporter . warn (CONFIGURATION_FILE + " is missed" );
308313 }
309314
310315 return properties ;
0 commit comments