@@ -163,19 +163,25 @@ public LoggingHandler(String log, LoggingOptions options, MonitoredResource moni
163163 * or {@link LogEntry} instances built by this handler.
164164 */
165165 public LoggingHandler (String log , LoggingOptions options , MonitoredResource monitoredResource , List <Enhancer > enhancers ) {
166- LogConfigHelper helper = new LogConfigHelper ();
167- String className = getClass ().getName ();
168- this .options = options != null ? options : LoggingOptions .getDefaultInstance ();
169- this .flushLevel = helper .getLevelProperty (className + ".flushLevel" , LoggingLevel .ERROR );
170- this .flushSize = helper .getLongProperty (className + ".flushSize" , 1L );
171- setLevel (helper .getLevelProperty (className + ".level" , Level .INFO ));
172- setFilter (helper .getFilterProperty (className + ".filter" , null ));
173- setFormatter (helper .getFormatterProperty (className + ".formatter" , new SimpleFormatter ()));
174- String logName = firstNonNull (log , helper .getProperty (className + ".log" , "java.log" ));
175- this .enhancers = enhancers != null ? enhancers : helper .getEnhancerProperty (className + ".enhancers" );
176- String resourceType = helper .getProperty (className + ".resourceType" , "global" );
177- MonitoredResource resource = monitoredResource != null ? monitoredResource : getDefaultResource (resourceType );
178- writeOptions = new WriteOption []{WriteOption .logName (logName ), WriteOption .resource (resource )};
166+ try {
167+ LogConfigHelper helper = new LogConfigHelper ();
168+ String className = getClass ().getName ();
169+ this .options = options != null ? options : LoggingOptions .getDefaultInstance ();
170+ this .flushLevel = helper .getLevelProperty (className + ".flushLevel" , LoggingLevel .ERROR );
171+ this .flushSize = helper .getLongProperty (className + ".flushSize" , 1L );
172+ setLevel (helper .getLevelProperty (className + ".level" , Level .INFO ));
173+ setFilter (helper .getFilterProperty (className + ".filter" , null ));
174+ setFormatter (helper .getFormatterProperty (className + ".formatter" , new SimpleFormatter ()));
175+ String logName = firstNonNull (log , helper .getProperty (className + ".log" , "java.log" ));
176+ this .enhancers = enhancers != null ? enhancers : helper .getEnhancerProperty (className + ".enhancers" );
177+ String resourceType = helper .getProperty (className + ".resourceType" , "global" );
178+ MonitoredResource resource = monitoredResource != null ? monitoredResource : getDefaultResource (resourceType );
179+ writeOptions = new WriteOption []{WriteOption .logName (logName ), WriteOption .resource (resource )};
180+ }
181+ catch (Exception ex ) {
182+ reportError (null , ex , ErrorManager .OPEN_FAILURE );
183+ throw ex ;
184+ }
179185 }
180186
181187 private static List <LoggingHandler > getLoggingHandlers (Logger logger ) {
@@ -354,23 +360,24 @@ private LogEntry entryFor(LogRecord record) {
354360 String payload ;
355361 try {
356362 payload = getFormatter ().format (record );
363+ Level level = record .getLevel ();
364+ LogEntry .Builder builder = LogEntry .newBuilder (Payload .StringPayload .of (payload ))
365+ .addLabel ("levelName" , level .getName ())
366+ .addLabel ("levelValue" , String .valueOf (level .intValue ()))
367+ .setTimestamp (record .getMillis ())
368+ .setSeverity (severityFor (level ));
369+
370+ for (Enhancer enhancer : enhancers ) {
371+ enhancer .enhanceLogEntry (builder , record );
372+ }
373+ enhanceLogEntry (builder , record );
374+ return builder .build ();
357375 } catch (Exception ex ) {
358- // Formatting can fail but we should not throw an exception, we report the error instead
376+ // Formatting or enhancing can fail but we should not throw an exception,
377+ // we report the error instead
359378 reportError (null , ex , ErrorManager .FORMAT_FAILURE );
360379 return null ;
361380 }
362- Level level = record .getLevel ();
363- LogEntry .Builder builder = LogEntry .newBuilder (Payload .StringPayload .of (payload ))
364- .addLabel ("levelName" , level .getName ())
365- .addLabel ("levelValue" , String .valueOf (level .intValue ()))
366- .setTimestamp (record .getMillis ())
367- .setSeverity (severityFor (level ));
368-
369- for (Enhancer enhancer : enhancers ) {
370- enhancer .enhanceLogEntry (builder , record );
371- }
372- enhanceLogEntry (builder , record );
373- return builder .build ();
374381 }
375382
376383 @ Deprecated
@@ -493,7 +500,7 @@ public static void addHandler(Logger logger, LoggingHandler handler) {
493500 * A Log Enhancer.
494501 * May be used to enhance the {@link MonitoredResource} and/or the {@link LogEntry}
495502 */
496- public interface Enhancer {
503+ interface Enhancer {
497504 void enhanceMonitoredResource (MonitoredResource .Builder builder );
498505 void enhanceLogEntry (LogEntry .Builder builder , LogRecord record );
499506 }
0 commit comments