Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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 @@ -437,20 +437,41 @@ default boolean enabled(@NonNull LoggerLevel level) {
return level.enabled();
}

/**
* Check of enabling the error level.
*/
default boolean errorEnabled() {
return enabled(LoggerLevel.ERROR);
}

/**
* Check of enabling the warning level.
*/
default boolean warningEnabled() {
default boolean warnEnabled() {
return enabled(LoggerLevel.WARNING);
}

/**
* Check of enabling the info level.
*/
default boolean infoEnabled() {
return enabled(LoggerLevel.INFO);
}

/**
* Check of enabling the debug level.
*/
default boolean debugEnabled() {
return enabled(LoggerLevel.DEBUG);
}

/**
* Check of enabling the trace level.
*/
default boolean traceEnabled() {
return enabled(LoggerLevel.TRACE);
}

/**
* Override the enabling status of the logger level.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class LoggerManager {

static {

String className = System.getProperty("com.ss.rlib.logger.factory", "");
String className = System.getProperty("javasabr.rlib.logger.factory", "");
Class<? extends LoggerFactory> implementation = null;

if (!className.isEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import javasabr.rlib.logger.api.Logger;
import javasabr.rlib.logger.api.LoggerLevel;
import javasabr.rlib.logger.api.LoggerService;
import javasabr.rlib.logger.impl.config.LogMessageConsumer;
import javasabr.rlib.logger.impl.config.consumer.LogMessageConsumer;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import org.jspecify.annotations.Nullable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import javasabr.rlib.logger.api.Logger;
import javasabr.rlib.logger.api.LoggerFactory;
import javasabr.rlib.logger.api.LoggerService;
import javasabr.rlib.logger.impl.config.LoggerConfigResolver;
import javasabr.rlib.logger.impl.config.loader.LoggerConfigResolver;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import javasabr.rlib.logger.api.Logger;
import javasabr.rlib.logger.api.LoggerLevel;
import javasabr.rlib.logger.api.LoggerService;
import javasabr.rlib.logger.impl.config.LogMessageConsumer;
import javasabr.rlib.logger.impl.config.LoggerConfig;
import javasabr.rlib.logger.impl.config.consumer.LogMessageConsumer;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import javasabr.rlib.collections.array.UnsafeArray;
import javasabr.rlib.logger.api.Logger;
import javasabr.rlib.logger.api.LoggerLevel;
import javasabr.rlib.logger.impl.config.consumer.LogMessageConsumer;

/**
* Configuration contract for logger levels and message consumers.
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package javasabr.rlib.logger.impl.config;
package javasabr.rlib.logger.impl.config.consumer;

import javasabr.rlib.logger.api.Logger;
import javasabr.rlib.logger.api.LoggerLevel;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package javasabr.rlib.logger.impl.config.impl;
package javasabr.rlib.logger.impl.config.consumer.impl;

import javasabr.rlib.logger.api.Logger;
import javasabr.rlib.logger.api.LoggerLevel;
import javasabr.rlib.logger.impl.config.LogMessageConsumer;
import javasabr.rlib.logger.impl.config.LogMessageRender;
import javasabr.rlib.logger.impl.config.consumer.LogMessageConsumer;
import javasabr.rlib.logger.impl.config.render.LogMessageRender;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@NullMarked
package javasabr.rlib.logger.impl.config.consumer.impl;

import org.jspecify.annotations.NullMarked;
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@NullMarked
package javasabr.rlib.logger.impl.config.consumer;

import org.jspecify.annotations.NullMarked;
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import javasabr.rlib.logger.api.Logger;
import javasabr.rlib.logger.api.LoggerLevel;
import javasabr.rlib.logger.impl.DefaultLoggerService;
import javasabr.rlib.logger.impl.config.LogMessageConsumer;
import javasabr.rlib.logger.impl.config.LoggerConfig;
import javasabr.rlib.logger.impl.config.consumer.LogMessageConsumer;

public class DefaultLoggerConfig implements LoggerConfig {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package javasabr.rlib.logger.impl.config.impl;

import javasabr.rlib.collections.array.Array;
import javasabr.rlib.collections.array.ArrayFactory;
import javasabr.rlib.collections.array.MutableArray;
import javasabr.rlib.collections.dictionary.DictionaryFactory;
import javasabr.rlib.collections.dictionary.MutableRefToRefDictionary;
import javasabr.rlib.logger.api.LoggerLevel;
import javasabr.rlib.logger.impl.config.LoggerConfig;
import javasabr.rlib.logger.impl.config.consumer.LogMessageConsumer;
import javasabr.rlib.logger.impl.config.impl.DefaultLoggerConfig.LoggerConsumersKey;
import javasabr.rlib.logger.impl.config.render.LogMessageRender;

public class LoggerConfigBuilder {

final MutableRefToRefDictionary<String, LoggerLevel> loggerLevels;
final MutableRefToRefDictionary<String, LogMessageRender> renders;
final MutableRefToRefDictionary<String, LogMessageConsumer> consumers;
final MutableRefToRefDictionary<LoggerConsumersKey, MutableArray<LogMessageConsumer>> loggerConsumers;

public LoggerConfigBuilder() {
this.loggerLevels = DictionaryFactory.mutableRefToRefDictionary();
this.renders = DictionaryFactory.mutableRefToRefDictionary();
this.consumers = DictionaryFactory.mutableRefToRefDictionary();
this.loggerConsumers = DictionaryFactory.mutableRefToRefDictionary();
Comment thread
JavaSaBr marked this conversation as resolved.
}
Comment thread
JavaSaBr marked this conversation as resolved.

public void registerLoggerLevel(String loggerName, LoggerLevel level) {
loggerLevels.put(loggerName, level);
}

public void registerLoggerConsumer(String loggerName, LoggerLevel level, LogMessageConsumer consumer) {
var key = new LoggerConsumersKey(loggerName, level);
loggerConsumers
.getOrCompute(key, () -> ArrayFactory.mutableArray(LogMessageConsumer.class))
.add(consumer);
}

public LoggerConfig build() {
var tempDictionary = DictionaryFactory
.<LoggerConsumersKey, Array<LogMessageConsumer>>mutableRefToRefDictionary();
loggerConsumers.forEach((key, consumers) ->
tempDictionary.put(key, Array.copyOf(consumers)));
return new DefaultLoggerConfig(loggerLevels.toReadOnly(), tempDictionary.toReadOnly());
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package javasabr.rlib.logger.impl.config;
package javasabr.rlib.logger.impl.config.loader;

import java.util.Optional;
import javasabr.rlib.logger.impl.config.LoggerConfig;

/**
* Loader of logger configuration.
Expand All @@ -9,6 +10,10 @@
*/
public interface LoggerConfigLoader {

int ORDER_NORMAL = 100;
int ORDER_LOW = 1000;
int ORDER_HIGH = 0;

/**
* Tries to load logger configuration.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package javasabr.rlib.logger.impl.config.loader;

import javasabr.rlib.collections.array.Array;

public interface LoggerConfigLoadersProvider {

Array<LoggerConfigLoader> getLoggerConfigLoaders();
}
Comment thread
JavaSaBr marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package javasabr.rlib.logger.impl.config.loader;

import java.util.Comparator;
import java.util.Optional;
import java.util.ServiceLoader;
import javasabr.rlib.collections.array.Array;
import javasabr.rlib.collections.array.ArrayCollectors;
import javasabr.rlib.collections.array.ArrayFactory;
import javasabr.rlib.logger.impl.config.LoggerConfig;
import javasabr.rlib.logger.impl.config.loader.impl.DefaultLoggerConfigLoader;
import javasabr.rlib.logger.impl.config.loader.impl.PropertyLoggerConfigLoader;

/**
* Resolver of logger configuration from available loaders.
*
* @since 10.0.0
*/
public class LoggerConfigResolver {

private static final Array<LoggerConfigLoader> LOADERS;

static {
var registeredProviders = ArrayFactory.mutableArray(LoggerConfigLoader.class);
registeredProviders.add(new DefaultLoggerConfigLoader());
registeredProviders.add(new PropertyLoggerConfigLoader());
for (var provider : ServiceLoader.load(LoggerConfigLoadersProvider.class)) {
registeredProviders.addAll(provider.getLoggerConfigLoaders());
}
LOADERS = registeredProviders.stream()
.sorted(Comparator.comparingInt(LoggerConfigLoader::order))
.collect(ArrayCollectors.toArray(LoggerConfigLoader.class));
}

/**
* Loads logger configuration.
*
* @return the loaded logger configuration
* @since 10.0.0
*/
public static LoggerConfig load() {
return LOADERS
.stream()
.map(LoggerConfigLoader::tryToLoad)
.flatMap(Optional::stream)
.findFirst()
.orElseThrow();
}
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
package javasabr.rlib.logger.impl.config.impl;
package javasabr.rlib.logger.impl.config.loader.impl;

import java.util.Optional;
import javasabr.rlib.collections.array.Array;
import javasabr.rlib.collections.dictionary.RefToRefDictionary;
import javasabr.rlib.logger.api.LoggerLevel;
import javasabr.rlib.logger.impl.DefaultLoggerService;
import javasabr.rlib.logger.impl.config.LogMessageConsumer;
import javasabr.rlib.logger.impl.config.LoggerConfig;
import javasabr.rlib.logger.impl.config.LoggerConfigLoader;
import javasabr.rlib.logger.impl.config.consumer.LogMessageConsumer;
import javasabr.rlib.logger.impl.config.consumer.impl.ConsoleMessageConsumer;
import javasabr.rlib.logger.impl.config.impl.DefaultLoggerConfig;
import javasabr.rlib.logger.impl.config.impl.DefaultLoggerConfig.LoggerConsumersKey;
import javasabr.rlib.logger.impl.config.loader.LoggerConfigLoader;
import javasabr.rlib.logger.impl.config.render.impl.SimpleLogMessageRender;

public class DefaultLoggerConfigLoader implements LoggerConfigLoader {

Expand All @@ -17,11 +20,9 @@ public Optional<LoggerConfig> tryToLoad() {
RefToRefDictionary<String, LoggerLevel> loggerLevels = RefToRefDictionary.of(
DefaultLoggerService.ROOT_LOGGER_NAME,
LoggerLevel.INFO);

RefToRefDictionary<LoggerConsumersKey, Array<LogMessageConsumer>> loggerConsumers = RefToRefDictionary.of(
DefaultLoggerConfig.ROOT_INFO_CONSUMERS_KEY,
Array.of(new ConsoleMessageConsumer(new SimpleLogMessageRender())));

return Optional.of(new DefaultLoggerConfig(loggerLevels, loggerConsumers));
}

Expand Down
Loading
Loading