mirror of https://github.com/qos-ch/slf4j
Import proof of concept
This commit is contained in:
parent
8c2ee1378e
commit
1d4daa1c53
3
pom.xml
3
pom.xml
|
|
@ -66,6 +66,7 @@
|
|||
<module>slf4j-simple</module>
|
||||
<module>slf4j-nop</module>
|
||||
<module>slf4j-jdk14</module>
|
||||
<module>slf4j-jdk-platform-logging</module>
|
||||
<module>slf4j-log4j12</module>
|
||||
<module>slf4j-ext</module>
|
||||
<module>jcl-over-slf4j</module>
|
||||
|
|
@ -74,7 +75,7 @@
|
|||
<module>osgi-over-slf4j</module>
|
||||
<module>integration</module>
|
||||
<module>slf4j-site</module>
|
||||
<module>slf4j-migrator</module>
|
||||
<module>slf4j-migrator</module>
|
||||
</modules>
|
||||
|
||||
<dependencies>
|
||||
|
|
|
|||
|
|
@ -25,4 +25,16 @@
|
|||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<!-- target Java 9+ -->
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<release>11</release>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
module org.slf4j.jdk {
|
||||
requires org.slf4j;
|
||||
provides java.lang.System.LoggerFinder
|
||||
with org.slf4j.jdk.SLF4JSystemLoggerFinder;
|
||||
}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
package org.slf4j.jdk;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import static java.util.Objects.requireNonNull;
|
||||
|
||||
class SLF4JSystemLogger implements System.Logger {
|
||||
|
||||
private final Logger logger;
|
||||
|
||||
public SLF4JSystemLogger(Logger logger) {
|
||||
this.logger = requireNonNull(logger);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return logger.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoggable(Level level) {
|
||||
switch(level) {
|
||||
case ALL:
|
||||
throw new UnsupportedOperationException();
|
||||
case TRACE:
|
||||
return logger.isTraceEnabled();
|
||||
case DEBUG:
|
||||
return logger.isDebugEnabled();
|
||||
case INFO:
|
||||
return logger.isInfoEnabled();
|
||||
case WARNING:
|
||||
return logger.isWarnEnabled();
|
||||
case ERROR:
|
||||
return logger.isErrorEnabled();
|
||||
case OFF:
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
// TODO
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log(Level level, ResourceBundle bundle, String msg, Throwable thrown) {
|
||||
switch(level) {
|
||||
case ALL:
|
||||
throw new UnsupportedOperationException();
|
||||
case TRACE:
|
||||
logger.trace(msg, thrown);
|
||||
break;
|
||||
case DEBUG:
|
||||
logger.debug(msg, thrown);
|
||||
break;
|
||||
case INFO:
|
||||
logger.info(msg, thrown);
|
||||
break;
|
||||
case WARNING:
|
||||
logger.warn(msg, thrown);
|
||||
break;
|
||||
case ERROR:
|
||||
logger.error(msg, thrown);
|
||||
break;
|
||||
case OFF:
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log(Level level, ResourceBundle bundle, String format, Object... params) {
|
||||
switch(level) {
|
||||
case ALL:
|
||||
throw new UnsupportedOperationException();
|
||||
case TRACE:
|
||||
logger.trace(MessageFormat.format(format, params));
|
||||
break;
|
||||
case DEBUG:
|
||||
logger.debug(MessageFormat.format(format, params));
|
||||
break;
|
||||
case INFO:
|
||||
logger.info(MessageFormat.format(format, params));
|
||||
break;
|
||||
case WARNING:
|
||||
logger.warn(MessageFormat.format(format, params));
|
||||
break;
|
||||
case ERROR:
|
||||
logger.error(MessageFormat.format(format, params));
|
||||
break;
|
||||
case OFF:
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package org.slf4j.jdk;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class SLF4JSystemLoggerFinder extends System.LoggerFinder {
|
||||
|
||||
@Override
|
||||
public System.Logger getLogger(String name, Module module) {
|
||||
// TODO do we need to use the `module`?
|
||||
Logger slf4JLogger = LoggerFactory.getLogger(name);
|
||||
return new SLF4JSystemLogger(slf4JLogger);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue