Skip to content

Change property name to logger.format from logger.writer #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jul 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ public final class Bootstrap {

public static LoggerContext init() {
Properties properties = loadProperties();
String writerType = properties.getProperty("logger.writer", "json");
LogWriter logWriter = createWriter(properties, writerType);
LogWriter logWriter = createWriter(properties, logFormat(properties));

String info = properties.getProperty("logger.defaultLogLevel", "info");
int defaultLevel = SimpleLoggerFactory.stringToLevel(info);
Expand All @@ -29,6 +28,10 @@ public static LoggerContext init() {
return new SimpleLoggerFactory(logWriter, abbreviator, defaultLevel, nameLevels);
}

private static String logFormat(Properties properties) {
return properties.getProperty("logger.format", "json");
}

private static Map<String, String> initialNameLevels(Properties properties) {
Map<String, String> nameLevels = new HashMap<>();
for (String key : properties.stringPropertyNames()) {
Expand All @@ -47,8 +50,8 @@ private static LogWriter createWriter(Properties properties, String writerType)
final TimeZone timeZone = TimeZoneUtils.parseTimeZone(property(properties, "logger.timezone"));
final String timestampPattern = property(properties, "logger.timestampPattern");
if ("plain".equalsIgnoreCase(writerType)) {
final DateTimeFormatter formatter = TimeZoneUtils.formatter(timestampPattern, timeZone.toZoneId());
final boolean showThreadName = Boolean.parseBoolean(Eval.eval(properties.getProperty("logger.showThreadName")));
final DateTimeFormatter formatter = TimeZoneUtils.plainFormatter(timestampPattern, timeZone.toZoneId());
final boolean showThreadName = propertyShowThreadName(properties);
return new PlainLogWriter(target, formatter, showThreadName);
}
var jsonEncoder = new JsonEncoderBuilder()
Expand All @@ -65,6 +68,10 @@ private static String property(Properties properties, String key) {
return Eval.eval(properties.getProperty(key));
}

private static boolean propertyShowThreadName(Properties properties) {
return Boolean.parseBoolean(Eval.eval(properties.getProperty("logger.showThreadName", "true")));
}

private static Properties loadProperties() {
final var properties = new Properties();
load(properties, "avaje-logger.properties");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import org.slf4j.helpers.MessageFormatter;

import java.io.ByteArrayOutputStream;
import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;

Expand Down Expand Up @@ -63,10 +63,10 @@ byte[] encode(String loggerName, Level level, String messagePattern, Object[] ar
writer.value(environment);
}
writer.name(2);
writer.value(formatter.format(Instant.now()));
writer.value(formatter.format(OffsetDateTime.now()));
writer.name(3);
writer.value(level.toString());
writer.name(4);//
writer.name(4);
writer.value(loggerName);
writer.name(5);
writer.value(message);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,7 @@ JsonEncoder build() {
if (stackHasher == null) {
stackHasher = new StackHasher(StackElementFilter.builder().allFilters().build());
}

final DateTimeFormatter formatter = TimeZoneUtils.formatter(timestampPattern, timeZone.toZoneId());
final DateTimeFormatter formatter = TimeZoneUtils.jsonFormatter(timestampPattern, timeZone.toZoneId());
return new JsonEncoder(json, component, environment, stackHasher, formatter, includeStackHash, customFieldsMap, throwableConverter);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,21 @@ static TimeZone parseTimeZone(String str) {
return tz;
}

static DateTimeFormatter formatter(String pattern, ZoneId zoneId) {
if (pattern == null) {
static DateTimeFormatter jsonFormatter(String timestampPattern, ZoneId zoneId) {
if (timestampPattern == null) {
return DateTimeFormatter.ISO_OFFSET_DATE_TIME.withZone(zoneId);
}
return formatter(timestampPattern, zoneId);
}

static DateTimeFormatter plainFormatter(String timestampPattern, ZoneId zoneId) {
if (timestampPattern == null) {
return DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss.SSS");
}
return formatter(timestampPattern, zoneId);
}

private static DateTimeFormatter formatter(String pattern, ZoneId zoneId) {
try {
var time = TimePattern.valueOf(pattern.toUpperCase());
switch (time) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public class AcceptanceTest extends LoggerTestSuite {

@Override
public Logger createLogger(ListAppendingOutputStream outputStream, Level level) {
final DateTimeFormatter formatter = TimeZoneUtils.formatter(null, TimeZone.getDefault().toZoneId());
final DateTimeFormatter formatter = TimeZoneUtils.jsonFormatter(null, TimeZone.getDefault().toZoneId());
int logLevel = SimpleLoggerFactory.stringToLevel(level.toString());
return new SimpleLogger(new PlainLogWriter(System.out, formatter, true), "TestSuiteLogger", "TestSuiteLogger", logLevel);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
logger.writer=plain
logger.format=plain

# values - full, short, <int target length>
#logger.nameTargetLength=full
Expand Down