Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,12 @@ interface N4Factory<A, B, C, D> {
* @return the logger name
* @since 10.0.0
*/
@NonNull String name();
@NonNull
String name();

@NonNull
String shortName();

/**
* Prints a trace message.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package javasabr.rlib.logger.api;

import java.io.Writer;

/**
* Factory for creating {@link Logger} instances.
*
Expand All @@ -10,22 +8,22 @@
public interface LoggerFactory {

/**
* Creates a logger with the specified name.
* Creates or gets a logger with the specified name.
*
* @param name the logger name
* @return the logger instance
* @since 10.0.0
*/
Logger make(String name);
Logger getLogger(String name);

/**
* Creates a logger for the specified class.
* Creates or gets a logger for the specified class.
*
* @param type the class to create a logger for
* @return the logger instance
* @since 10.0.0
*/
Logger make(Class<?> type);
Logger getLogger(Class<?> type);

/**
* Returns the default logger.
Expand All @@ -34,36 +32,6 @@ public interface LoggerFactory {
* @since 10.0.0
*/
Logger getDefault();

/**
* Adds a listener to receive log output.
*
* @param listener the listener to add
* @since 10.0.0
*/
void addListener(LoggerListener listener);

/**
* Removes a previously added listener.
*
* @param listener the listener to remove
* @since 10.0.0
*/
void removeListener(LoggerListener listener);

/**
* Adds a writer to receive log output.
*
* @param writer the writer to add
* @since 10.0.0
*/
void addWriter(Writer writer);

/**
* Removes a previously added writer.
*
* @param writer the writer to remove
* @since 10.0.0
*/
void removeWriter(Writer writer);

LoggerService getLoggerService();
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
@Accessors(fluent = true)
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
public enum LoggerLevel {
TRACE("TRACE", " ", false, false),
DEBUG("DEBUG", " ", false, false),
INFO("INFO", " ", true, true),
WARNING("WARN", " ", true, true),
ERROR("ERROR", " ", true, true);
TRACE("TRACE", " ", 0, false, false),
DEBUG("DEBUG", " ", 1, false, false),
INFO("INFO", " ", 2, true, true),
WARNING("WARN", " ", 3, true, true),
ERROR("ERROR", " ", 4, true, true);

/**
* The number of log levels.
Expand All @@ -30,6 +30,7 @@ public enum LoggerLevel {
String title;
String offset;

int severity;
boolean enabled;
boolean forceFlush;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
package javasabr.rlib.logger.api;

import java.io.Writer;
import java.lang.reflect.InvocationTargetException;
import java.util.Iterator;
import java.util.ServiceLoader;
import javasabr.rlib.logger.api.impl.NullLoggerFactory;
import javasabr.rlib.logger.api.impl.NoOpsLoggerFactory;

/**
* Central manager for obtaining and configuring loggers.
Expand Down Expand Up @@ -41,7 +40,7 @@ public class LoggerManager {
System.err.printf(
"ERROR: No any exist implementation of [%s], will be used null logger%n",
LoggerFactory.class);
LOGGER_FACTORY = new NullLoggerFactory();
LOGGER_FACTORY = new NoOpsLoggerFactory();
Comment thread
JavaSaBr marked this conversation as resolved.
} else {
try {
LOGGER_FACTORY = implementation
Expand Down Expand Up @@ -71,7 +70,7 @@ public static Logger getDefaultLogger() {
* @since 10.0.0
*/
public static Logger getLogger(Class<?> cs) {
return LOGGER_FACTORY.make(cs);
return LOGGER_FACTORY.getLogger(cs);
}

/**
Expand All @@ -82,57 +81,13 @@ public static Logger getLogger(Class<?> cs) {
* @since 10.0.0
*/
public static Logger getLogger(String id) {
return LOGGER_FACTORY.make(id);
return LOGGER_FACTORY.getLogger(id);
}

/**
* Adds a listener to receive log output.
*
* @param listener the listener to add
* @since 10.0.0
*/
public static void addListener(LoggerListener listener) {
if (LOGGER_FACTORY instanceof LoggerService ls) {
ls.addListener(listener);
}
}

/**
* Removes a previously added listener.
*
* @param listener the listener to remove
* @since 10.0.0
*/
public static void removeListener(LoggerListener listener) {
if (LOGGER_FACTORY instanceof LoggerService ls) {
ls.removeListener(listener);
}
public static LoggerService getLoggerService() {
return LOGGER_FACTORY.getLoggerService();
}

/**
* Adds a writer to receive log output.
*
* @param writer the writer to add
* @since 10.0.0
*/
public static void addWriter(Writer writer) {
if (LOGGER_FACTORY instanceof LoggerService ls) {
ls.addWriter(writer);
}
}

/**
* Removes a previously added writer.
*
* @param writer the writer to remove
* @since 10.0.0
*/
public static void removeWriter(Writer writer) {
if (LOGGER_FACTORY instanceof LoggerService ls) {
ls.removeWriter(writer);
}
}


/**
* Configures the default setting for a log level.
*
Expand All @@ -141,9 +96,9 @@ public static void removeWriter(Writer writer) {
* @since 10.0.0
*/
public static void configureDefault(LoggerLevel level, boolean def) {
if (LOGGER_FACTORY instanceof LoggerService ls) {
ls.configureDefault(level, def);
}
LOGGER_FACTORY
.getLoggerService()
.configureDefault(level, def);
}

/**
Expand All @@ -153,9 +108,9 @@ public static void configureDefault(LoggerLevel level, boolean def) {
* @since 10.0.0
*/
public static void removeDefault(LoggerLevel level) {
if (LOGGER_FACTORY instanceof LoggerService ls) {
ls.removeDefault(level);
}
LOGGER_FACTORY
.getLoggerService()
.removeDefault(level);
}

/**
Expand All @@ -166,9 +121,9 @@ public static void removeDefault(LoggerLevel level) {
* @since 10.0.0
*/
public static void enable(Class<?> cs, LoggerLevel level) {
if (LOGGER_FACTORY instanceof LoggerService ls) {
ls.enable(cs, level);
}
LOGGER_FACTORY
.getLoggerService()
.enable(cs, level);
}

/**
Expand All @@ -179,8 +134,8 @@ public static void enable(Class<?> cs, LoggerLevel level) {
* @since 10.0.0
*/
public static void disable(Class<?> cs, LoggerLevel level) {
if (LOGGER_FACTORY instanceof LoggerService ls) {
ls.disable(cs, level);
}
LOGGER_FACTORY
.getLoggerService()
.disable(cs, level);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package javasabr.rlib.logger.api;

import java.io.Writer;

/**
* Service interface for configuring logger behavior.
*
Expand All @@ -23,39 +21,7 @@ public interface LoggerService {
* Indicates that the level is enabled.
*/
int ENABLED = 1;

/**
* Adds a listener to receive log output.
*
* @param listener the listener to add
* @since 10.0.0
*/
void addListener(LoggerListener listener);

/**
* Removes a previously added listener.
*
* @param listener the listener to remove
* @since 10.0.0
*/
void removeListener(LoggerListener listener);

/**
* Adds a writer to receive log output.
*
* @param writer the writer to add
* @since 10.0.0
*/
void addWriter(Writer writer);

/**
* Removes a previously added writer.
*
* @param writer the writer to remove
* @since 10.0.0
*/
void removeWriter(Writer writer);


/**
* Enables logging at the specified level for the class.
*
Expand Down Expand Up @@ -103,10 +69,10 @@ public interface LoggerService {
/**
* Writes a log message.
*
* @param logger the logger
* @param level the log level
* @param loggerName the logger name
* @param logMessage the message to write
* @param message the message to write
* @since 10.0.0
*/
void write(LoggerLevel level, String loggerName, String logMessage);
void write(Logger logger, LoggerLevel level, String message);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,16 @@
import javasabr.rlib.logger.api.Logger;
import javasabr.rlib.logger.api.LoggerLevel;

public final class NullLogger implements Logger {
public final class NoOpsLogger implements Logger {

@Override
public String name() {
return "null";
return "noops";
}

@Override
public String shortName() {
return "noops";
}

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

import javasabr.rlib.logger.api.Logger;
import javasabr.rlib.logger.api.LoggerFactory;
import javasabr.rlib.logger.api.LoggerService;

public class NoOpsLoggerFactory implements LoggerFactory {

private static final NoOpsLogger NULL_LOGGER = new NoOpsLogger();
private static final LoggerService NO_OPS_LOGGER_SERVICE = new NoOpsLoggerService();

@Override
public Logger getLogger(String name) {
return NULL_LOGGER;
}

@Override
public Logger getLogger(Class<?> type) {
return NULL_LOGGER;
}

@Override
public Logger getDefault() {
return NULL_LOGGER;
}
Comment thread
JavaSaBr marked this conversation as resolved.
Outdated

@Override
public LoggerService getLoggerService() {
return NO_OPS_LOGGER_SERVICE;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package javasabr.rlib.logger.api.impl;

import javasabr.rlib.logger.api.Logger;
import javasabr.rlib.logger.api.LoggerLevel;
import javasabr.rlib.logger.api.LoggerService;

public class NoOpsLoggerService implements LoggerService {

@Override
public void enable(Class<?> cs, LoggerLevel level) {}

@Override
public void disable(Class<?> cs, LoggerLevel level) {}

@Override
public void configureDefault(LoggerLevel level, boolean def) {}

@Override
public void removeDefault(LoggerLevel level) {}

@Override
public int enabled(LoggerLevel level) {
return 0;
}

@Override
public void write(Logger logger, LoggerLevel level, String message) {}
}
Loading
Loading