Skip to content

Commit

Permalink
Include the logging level in the formatter arguments
Browse files Browse the repository at this point in the history
Randgalt committed Feb 26, 2021
1 parent 9c039b4 commit 58bd433
Showing 7 changed files with 14 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -22,11 +22,12 @@
public interface MapleFormatter {
/**
* Apply generated name/value pairs and calling the underlying logger
* @param logger the logger proxy
* @param loggerName
* @param logger the logger proxy
* @param loggingLevel the logging level
* @param loggerName the name of the logger
* @param namesValues name/value pairs
* @param mainMessage the main message to output or {@code ""}
* @param t the exception to output or {@code null}
*/
void apply(LevelLogger logger, String loggerName, NamesValues namesValues, String mainMessage, Throwable t);
void apply(LevelLogger logger, LoggingLevel loggingLevel, String loggerName, NamesValues namesValues, String mainMessage, Throwable t);
}
Original file line number Diff line number Diff line change
@@ -45,7 +45,7 @@ public LOGGER logger() {
public void consume(LoggingLevel loggingLevel, String mainMessage, Throwable t, Statement<T> statement) {
String loggerName = isEnabledLoggerNameProc.apply(loggingLevel, logger);
if (loggerName != null) {
MapleSpi.instance().consume(levelLoggerProc.apply(loggingLevel, logger), loggerName, mainMessage, t, statement, metaInstance);
MapleSpi.instance().consume(levelLoggerProc.apply(loggingLevel, logger), loggingLevel, loggerName, mainMessage, t, statement, metaInstance);
}
}

Original file line number Diff line number Diff line change
@@ -114,7 +114,7 @@ public ModelFormatter(NodeMapper mapper, String separator, MapleFormatter format
}

@Override
public void apply(LevelLogger logger, String loggerName, NamesValues namesValues, String mainMessage, Throwable t) {
public void apply(LevelLogger logger, LoggingLevel loggingLevel, String loggerName, NamesValues namesValues, String mainMessage, Throwable t) {
List<String> appliedNames = new ArrayList<>();
List<Object> appliedValues = new ArrayList<>();
for (int i = 0; i < namesValues.qty(); ++i) {
@@ -154,7 +154,7 @@ public Stream<NameValue> stream() {
return Stream.empty();
}
};
formatter.apply(logger, loggerName, applied, mainMessage, t);
formatter.apply(logger, loggingLevel, loggerName, applied, mainMessage, t);
}

private Handler getHandler(JsonNode node) {
Original file line number Diff line number Diff line change
@@ -15,6 +15,7 @@
*/
package io.soabase.maple.formatters;

import io.soabase.maple.api.LoggingLevel;
import io.soabase.maple.api.MapleFormatter;
import io.soabase.maple.api.NamesValues;
import io.soabase.maple.api.LevelLogger;
@@ -74,7 +75,7 @@ public StandardFormatter(Option... options) {
}

@Override
public void apply(LevelLogger logger, String loggerName, NamesValues namesValues, String mainMessage, Throwable t) {
public void apply(LevelLogger logger, LoggingLevel loggingLevel, String loggerName, NamesValues namesValues, String mainMessage, Throwable t) {
StringBuilder logMessage = new StringBuilder(STRING_BUILDER_CAPACITY);
boolean needsSpace = false;
boolean hasMainMessage = !mainMessage.isEmpty();
7 changes: 2 additions & 5 deletions maple-core/src/main/java/io/soabase/maple/spi/MapleSpi.java
Original file line number Diff line number Diff line change
@@ -15,17 +15,14 @@
*/
package io.soabase.maple.spi;

import io.soabase.maple.api.LevelLogger;
import io.soabase.maple.api.MapleFormatter;
import io.soabase.maple.api.NamesValues;
import io.soabase.maple.api.Statement;
import io.soabase.maple.api.*;

public interface MapleSpi {
static MapleSpi instance() {
return Loaders.mapleSpiLoader.instance();
}

<T> void consume(LevelLogger levelLogger, String loggerName, String mainMessage, Throwable t, Statement<T> statement, MetaInstance<T> metaInstance);
<T> void consume(LevelLogger levelLogger, LoggingLevel loggingLevel, String loggerName, String mainMessage, Throwable t, Statement<T> statement, MetaInstance<T> metaInstance);

<T> MetaInstance<T> generate(Class<T> schemaClass);

Original file line number Diff line number Diff line change
@@ -33,9 +33,9 @@ public <T> MetaInstance<T> generate(Class<T> schemaClass) {
}

@Override
public <T> void consume(LevelLogger levelLogger, String loggerName, String mainMessage, Throwable t, Statement<T> statement, MetaInstance<T> metaInstance) {
public <T> void consume(LevelLogger levelLogger, LoggingLevel loggingLevel, String loggerName, String mainMessage, Throwable t, Statement<T> statement, MetaInstance<T> metaInstance) {
NamesValues namesValues = applySpecializations(statement.toNamesValues(metaInstance));
metaInstance.formatter().apply(levelLogger, loggerName, namesValues, mainMessage, t);
metaInstance.formatter().apply(levelLogger, loggingLevel, loggerName, namesValues, mainMessage, t);
}

@Override
Original file line number Diff line number Diff line change
@@ -157,7 +157,7 @@ void testCaching() {
void testCachingWithFormatters() {
Names names = buildNames(BasicSchema.class);

MapleFormatter altFormatter = (logger, loggerName, namesValues, mainMessage, t) -> {};
MapleFormatter altFormatter = (logger, loggingLevel, loggerName, namesValues, mainMessage, t) -> {};

MetaInstance<BasicSchema> metaInstance1 = generator.generate(names, BasicSchema.class, ClassLoader.getSystemClassLoader(), formatter);
MetaInstance<BasicSchema> metaInstance2 = generator.generate(names, BasicSchema.class, ClassLoader.getSystemClassLoader(), altFormatter);

0 comments on commit 58bd433

Please sign in to comment.