Skip to content

Commit ff2c690

Browse files
committed
improve after review
1 parent 705ee44 commit ff2c690

9 files changed

Lines changed: 182 additions & 7 deletions

File tree

rlib-logger-api/src/main/java/javasabr/rlib/logger/api/Logger.java

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -431,42 +431,61 @@ default <A, B, C, D> void info(A arg1, B arg2, C arg3, D arg4, @NonNull N4Factor
431431
}
432432

433433
/**
434-
* Check of enabling the logger level.
434+
* Checks whether logging is enabled at the specified level.
435+
*
436+
* @param level the log level
437+
* @return true if logging is enabled, false otherwise
438+
* @since 10.0.0
435439
*/
436440
default boolean enabled(@NonNull LoggerLevel level) {
437441
return level.enabled();
438442
}
439443

440444
/**
441-
* Check of enabling the error level.
445+
* Checks whether logging is enabled at the error level.
446+
*
447+
* @return true if logging is enabled, false otherwise
448+
* @since 10.0.0
442449
*/
443450
default boolean errorEnabled() {
444451
return enabled(LoggerLevel.ERROR);
445452
}
446453

447454
/**
448-
* Check of enabling the warning level.
455+
* Checks whether logging is enabled at the warning level.
456+
*
457+
* @return true if logging is enabled, false otherwise
458+
* @since 10.0.0
449459
*/
450460
default boolean warnEnabled() {
451461
return enabled(LoggerLevel.WARNING);
452462
}
453463

454464
/**
455-
* Check of enabling the info level.
465+
* Checks whether logging is enabled at the info level.
466+
*
467+
* @return true if logging is enabled, false otherwise
468+
* @since 10.0.0
456469
*/
457470
default boolean infoEnabled() {
458471
return enabled(LoggerLevel.INFO);
459472
}
460473

461474
/**
462-
* Check of enabling the debug level.
475+
* Checks whether logging is enabled at the debug level.
476+
*
477+
* @return true if logging is enabled, false otherwise
478+
* @since 10.0.0
463479
*/
464480
default boolean debugEnabled() {
465481
return enabled(LoggerLevel.DEBUG);
466482
}
467483

468484
/**
469-
* Check of enabling the trace level.
485+
* Checks whether logging is enabled at the trace level.
486+
*
487+
* @return true if logging is enabled, false otherwise
488+
* @since 10.0.0
470489
*/
471490
default boolean traceEnabled() {
472491
return enabled(LoggerLevel.TRACE);

rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/loader/LoggerConfigLoadersProvider.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,18 @@
22

33
import javasabr.rlib.collections.array.Array;
44

5+
/**
6+
* Provider of additional logger configuration loaders.
7+
*
8+
* @since 10.0.0
9+
*/
510
public interface LoggerConfigLoadersProvider {
611

12+
/**
13+
* Returns additional logger configuration loaders.
14+
*
15+
* @return the logger configuration loaders
16+
* @since 10.0.0
17+
*/
718
Array<LoggerConfigLoader> getLoggerConfigLoaders();
819
}

rlib-logger-impl/src/main/java/javasabr/rlib/logger/impl/config/render/impl/pattern/PatternRenderNodesParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ private static ParsedNode parse(String nodeName, String pattern, int afterNameIn
6464
}
6565

6666
private static String extractArgumentsString(String pattern, int afterNameIndex) {
67-
if (pattern.charAt(afterNameIndex) != '{') {
67+
if (pattern.length() <= afterNameIndex || pattern.charAt(afterNameIndex) != '{') {
6868
throw new IllegalArgumentException("Missed '{' at position:[%d] in pattern:[%s]"
6969
.formatted(afterNameIndex, pattern));
7070
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package javasabr.rlib.logger.impl.config.render.impl.pattern.node;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import javasabr.rlib.logger.api.LoggerLevel;
6+
import org.junit.jupiter.api.Test;
7+
8+
class DateTimePatternRenderNodeTest {
9+
10+
@Test
11+
void shouldAppendCurrentDateTimeUsingProvidedPattern() {
12+
// given:
13+
var node = new DateTimePatternRenderNode("yyyy-MM-dd HH:mm:ss");
14+
var buffer = new StringBuilder("prefix:");
15+
16+
// when:
17+
node.append(LoggerLevel.INFO, PatternRenderNodeTestUtils.LOGGER, "ignored-message", buffer);
18+
19+
// then:
20+
assertThat(buffer.toString())
21+
.matches("prefix:\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}");
22+
}
23+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package javasabr.rlib.logger.impl.config.render.impl.pattern.node;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import javasabr.rlib.logger.api.LoggerLevel;
6+
import org.junit.jupiter.api.Test;
7+
8+
class LevelPatternRenderNodeTest {
9+
10+
@Test
11+
void shouldAppendLevelTitleWithOffset() {
12+
// given:
13+
var node = new LevelPatternRenderNode();
14+
var buffer = new StringBuilder("prefix:");
15+
16+
// when:
17+
node.append(LoggerLevel.WARNING, PatternRenderNodeTestUtils.LOGGER, "ignored-message", buffer);
18+
19+
// then:
20+
assertThat(buffer.toString())
21+
.isEqualTo("prefix:WARN ");
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package javasabr.rlib.logger.impl.config.render.impl.pattern.node;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import javasabr.rlib.logger.api.LoggerLevel;
6+
import org.junit.jupiter.api.Test;
7+
8+
class MessagePatternRenderNodeTest {
9+
10+
@Test
11+
void shouldAppendMessageToBuffer() {
12+
// given:
13+
var node = new MessagePatternRenderNode();
14+
var buffer = new StringBuilder("prefix:");
15+
16+
// when:
17+
node.append(LoggerLevel.ERROR, PatternRenderNodeTestUtils.LOGGER, "actual-message", buffer);
18+
19+
// then:
20+
assertThat(buffer.toString())
21+
.isEqualTo("prefix:actual-message");
22+
}
23+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package javasabr.rlib.logger.impl.config.render.impl.pattern.node;
2+
3+
import javasabr.rlib.logger.api.Logger;
4+
import javasabr.rlib.logger.api.LoggerLevel;
5+
6+
final class PatternRenderNodeTestUtils {
7+
8+
static final Logger LOGGER = new Logger() {
9+
@Override
10+
public String name() {
11+
return "example.logger.PatternRenderNodeTest";
12+
}
13+
14+
@Override
15+
public String shortName() {
16+
return "PatternRenderNodeTest";
17+
}
18+
19+
@Override
20+
public void print(LoggerLevel level, String message) {}
21+
22+
@Override
23+
public void print(LoggerLevel level, Throwable exception) {}
24+
25+
@Override
26+
public void print(LoggerLevel level, String message, Throwable exception) {}
27+
};
28+
29+
private PatternRenderNodeTestUtils() {}
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package javasabr.rlib.logger.impl.config.render.impl.pattern.node;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import javasabr.rlib.logger.api.LoggerLevel;
6+
import org.junit.jupiter.api.Test;
7+
8+
class ShortLoggerPatternRenderNodeTest {
9+
10+
@Test
11+
void shouldAppendLoggerShortNameToBuffer() {
12+
// given:
13+
var node = new ShortLoggerPatternRenderNode();
14+
var buffer = new StringBuilder("prefix:");
15+
16+
// when:
17+
node.append(LoggerLevel.INFO, PatternRenderNodeTestUtils.LOGGER, "ignored-message", buffer);
18+
19+
// then:
20+
assertThat(buffer.toString())
21+
.isEqualTo("prefix:PatternRenderNodeTest");
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package javasabr.rlib.logger.impl.config.render.impl.pattern.node;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import javasabr.rlib.logger.api.LoggerLevel;
6+
import org.junit.jupiter.api.Test;
7+
8+
class StringPatternRenderNodeTest {
9+
10+
@Test
11+
void shouldAppendConfiguredStringToBuffer() {
12+
// given:
13+
var node = new StringPatternRenderNode("configured-value");
14+
var buffer = new StringBuilder("prefix:");
15+
16+
// when:
17+
node.append(LoggerLevel.DEBUG, PatternRenderNodeTestUtils.LOGGER, "ignored-message", buffer);
18+
19+
// then:
20+
assertThat(buffer.toString())
21+
.isEqualTo("prefix:configured-value");
22+
}
23+
}

0 commit comments

Comments
 (0)