Skip to content

Commit b965418

Browse files
committed
Issue #6.
1 parent 38a484c commit b965418

6 files changed

Lines changed: 477 additions & 0 deletions

File tree

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package org.hisrc.jsonix.settings;
2+
3+
import org.slf4j.spi.LocationAwareLogger;
4+
5+
public enum LogLevel {
6+
7+
TRACE(LocationAwareLogger.TRACE_INT), DEBUG(LocationAwareLogger.DEBUG_INT), INFO(
8+
LocationAwareLogger.INFO_INT), WARN(LocationAwareLogger.WARN_INT), ERROR(
9+
LocationAwareLogger.ERROR_INT);
10+
11+
private final int levelInt;
12+
13+
private LogLevel(int levelInt) {
14+
this.levelInt = levelInt;
15+
}
16+
17+
public int asInt() {
18+
return this.levelInt;
19+
}
20+
21+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package org.hisrc.jsonix.settings;
2+
3+
public interface LoggingSettings {
4+
5+
public LogLevel getLogLevel();
6+
7+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package org.hisrc.jsonix.settings;
2+
3+
public interface Settings {
4+
5+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package org.hisrc.jsonix.slf4j;
2+
3+
import org.slf4j.Marker;
4+
import org.slf4j.spi.LocationAwareLogger;
5+
6+
public abstract class LevelledLocationAwareLoggerWrapper extends
7+
LevelledLoggerWrapper implements LocationAwareLogger {
8+
9+
private LocationAwareLogger locationAwareDelegate;
10+
11+
LevelledLocationAwareLoggerWrapper(LocationAwareLogger logger) {
12+
super(logger);
13+
this.locationAwareDelegate = logger;
14+
}
15+
16+
@Override
17+
public void log(Marker marker, String fqcn, int level, String message,
18+
Object[] argArray, Throwable t) {
19+
if (this.getLevel() >= level) {
20+
this.locationAwareDelegate.log(marker, fqcn, level, message,
21+
argArray, t);
22+
}
23+
}
24+
25+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package org.hisrc.jsonix.slf4j;
2+
3+
import org.apache.commons.lang3.Validate;
4+
import org.slf4j.ILoggerFactory;
5+
import org.slf4j.Logger;
6+
import org.slf4j.spi.LocationAwareLogger;
7+
8+
public abstract class LevelledLoggerFactoryWrapper implements ILoggerFactory {
9+
10+
protected final ILoggerFactory loggerFactory;
11+
12+
public LevelledLoggerFactoryWrapper(ILoggerFactory loggerFactory) {
13+
this.loggerFactory = Validate.notNull(loggerFactory);
14+
}
15+
16+
protected abstract int getLevel();
17+
18+
@Override
19+
public Logger getLogger(String name) {
20+
final Logger logger = loggerFactory.getLogger(name);
21+
if (logger instanceof LocationAwareLogger) {
22+
return new LevelledLocationAwareLoggerWrapper(
23+
(LocationAwareLogger) logger) {
24+
@Override
25+
protected int getLevel() {
26+
return LevelledLoggerFactoryWrapper.this.getLevel();
27+
}
28+
};
29+
} else {
30+
return new LevelledLoggerWrapper(logger) {
31+
@Override
32+
protected int getLevel() {
33+
return LevelledLoggerFactoryWrapper.this.getLevel();
34+
}
35+
};
36+
}
37+
}
38+
}

0 commit comments

Comments
 (0)