Skip to content

Commit b8732f1

Browse files
authored
Merge pull request #12 from FusionAuth/degroff/logger-updates
Break Logger interface. Update logger to be more standard.
2 parents e237bcb + 45cbbdc commit b8732f1

File tree

5 files changed

+61
-16
lines changed

5 files changed

+61
-16
lines changed

build.savant

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jackson5Version = "3.0.1"
1717
restifyVersion = "4.1.2"
1818
testngVersion = "7.8.0"
1919

20-
project(group: "io.fusionauth", name: "java-http", version: "0.1.16", licenses: ["ApacheV2_0"]) {
20+
project(group: "io.fusionauth", name: "java-http", version: "0.2.0", licenses: ["ApacheV2_0"]) {
2121
workflow {
2222
fetch {
2323
// Dependency resolution order:

src/main/java/io/fusionauth/http/log/BaseLogger.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,25 @@ public void info(String message, Object... values) {
7777
}
7878

7979
@Override
80-
public boolean isDebuggable() {
80+
public boolean isDebugEnabled() {
8181
return getLevelOrdinal() <= Level.Debug.ordinal();
8282
}
8383

84+
@Override
85+
public boolean isErrorEnabled() {
86+
return getLevelOrdinal() <= Level.Error.ordinal();
87+
}
88+
89+
@Override
90+
public boolean isInfoEnabled() {
91+
return getLevelOrdinal() <= Level.Info.ordinal();
92+
}
93+
94+
@Override
95+
public boolean isTraceEnabled() {
96+
return getLevelOrdinal() <= Level.Trace.ordinal();
97+
}
98+
8499
@Override
85100
public void setLevel(Level level) {
86101
this.level = level;

src/main/java/io/fusionauth/http/log/Logger.java

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2022, FusionAuth, All Rights Reserved
2+
* Copyright (c) 2022-2023, FusionAuth, All Rights Reserved
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -76,9 +76,46 @@ public interface Logger {
7676
void info(String message, Object... values);
7777

7878
/**
79-
* @return If this logger has debug enabled.
79+
* @return True if this Logger is enabled for the Debug level, false otherwise.
8080
*/
81-
boolean isDebuggable();
81+
boolean isDebugEnabled();
82+
83+
/**
84+
* Returns whether this Logger is enabled for a given {@link Level}.
85+
*
86+
* @param level the level to check
87+
* @return true if enabled, false otherwise.
88+
*/
89+
default boolean isEnabledForLevel(Level level) {
90+
return switch (level) {
91+
case Trace -> isTraceEnabled();
92+
case Debug -> isDebugEnabled();
93+
case Info -> isInfoEnabled();
94+
case Error -> isErrorEnabled();
95+
};
96+
}
97+
98+
/**
99+
* @return True if this Logger is enabled for the Error level, false otherwise.
100+
*/
101+
boolean isErrorEnabled();
102+
103+
/**
104+
* @return True if this Logger is enabled for the Info level, false otherwise.
105+
*/
106+
boolean isInfoEnabled();
107+
108+
/**
109+
* @return True if this Logger is enabled for the Trace level, false otherwise.
110+
*/
111+
boolean isTraceEnabled();
112+
113+
/**
114+
* Sets the level of this logger (optional method).
115+
*
116+
* @param level The level.
117+
*/
118+
void setLevel(Level level);
82119

83120
/**
84121
* Logs a trace message with values.
@@ -94,11 +131,4 @@ public interface Logger {
94131
* @param message The message.
95132
*/
96133
void trace(String message);
97-
98-
/**
99-
* Sets the level of this logger (optional method).
100-
*
101-
* @param level The level.
102-
*/
103-
void setLevel(Level level);
104134
}

src/main/java/io/fusionauth/http/server/HTTPResponseProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public synchronized ByteBuffer[] currentBuffer() {
8080
}
8181

8282
logger.debug("Preamble is [{}] bytes long", preambleBuffers[0].remaining());
83-
if (logger.isDebuggable()) {
83+
if (logger.isDebugEnabled()) {
8484
logger.debug("Preamble is [\n{}\n]", new String(preambleBuffers[0].array(), 0, preambleBuffers[0].remaining()));
8585
}
8686

src/main/java/io/fusionauth/http/server/HTTPServerThread.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ private void accept(SelectionKey key) throws GeneralSecurityException, IOExcepti
210210
client.configureBlocking(false);
211211
client.register(key.selector(), tlsProcessor.initialKeyOps(), tlsProcessor);
212212

213-
if (logger.isDebuggable()) {
213+
if (logger.isDebugEnabled()) {
214214
try {
215215
logger.debug("Accepted connection from client [{}]", client.getRemoteAddress().toString());
216216
} catch (IOException e) {
@@ -226,7 +226,7 @@ private void accept(SelectionKey key) throws GeneralSecurityException, IOExcepti
226226
private void cancelAndCloseKey(SelectionKey key) {
227227
if (key != null) {
228228
try (var client = key.channel()) {
229-
if (logger.isDebuggable() && client instanceof SocketChannel socketChannel) {
229+
if (logger.isDebugEnabled() && client instanceof SocketChannel socketChannel) {
230230
logger.debug("Closing connection to client [{}]", socketChannel.getRemoteAddress().toString());
231231
}
232232

@@ -251,7 +251,7 @@ private void cleanup() {
251251
.filter(key -> key.attachment() != null)
252252
.filter(key -> ((HTTPProcessor) key.attachment()).lastUsed() < now - clientTimeout.toMillis())
253253
.forEach(key -> {
254-
if (logger.isDebuggable()) {
254+
if (logger.isDebugEnabled()) {
255255
var client = (SocketChannel) key.channel();
256256
try {
257257
logger.debug("Closing client connection [{}] due to inactivity", client.getRemoteAddress().toString());

0 commit comments

Comments
 (0)