Skip to content
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 @@ -205,8 +205,18 @@ interface N4Factory<A, B, C, D> {
* @return the logger name
* @since 10.0.0
*/
@NonNull String name();
@NonNull
String name();

/**
* Returns the short name of this logger.
*
* @return the short logger name
* @since 10.0.0
*/
@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,12 @@ 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.
* Returns the logger service.
*
* @param writer the writer to remove
* @return the logger service
* @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 @@ -39,9 +38,9 @@ public class LoggerManager {

if (implementation == null) {
System.err.printf(
"ERROR: No any exist implementation of [%s], will be used null logger%n",
"ERROR: No any exist implementation of [%s], will be used no ops 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,19 @@ 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.
* Returns the logger service.
*
* @param listener the listener to add
* @return the logger service
* @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 +102,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 +114,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 +127,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 +140,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 NO_OPS_LOGGER = new NoOpsLogger();
private static final LoggerService NO_OPS_LOGGER_SERVICE = new NoOpsLoggerService();

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

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

@Override
public Logger getDefault() {
return NO_OPS_LOGGER;
}

@Override
public LoggerService getLoggerService() {
return NO_OPS_LOGGER_SERVICE;
}
}
Loading
Loading