hook up the I2P logging system to JUL
This commit is contained in:
@@ -30,8 +30,10 @@ import com.muwire.core.search.SearchEvent
|
|||||||
import com.muwire.core.search.SearchManager
|
import com.muwire.core.search.SearchManager
|
||||||
import com.muwire.core.trust.TrustEvent
|
import com.muwire.core.trust.TrustEvent
|
||||||
import com.muwire.core.trust.TrustService
|
import com.muwire.core.trust.TrustService
|
||||||
|
import com.muwire.core.util.MuWireLogManager
|
||||||
|
|
||||||
import groovy.util.logging.Log
|
import groovy.util.logging.Log
|
||||||
|
import net.i2p.I2PAppContext
|
||||||
import net.i2p.client.I2PClientFactory
|
import net.i2p.client.I2PClientFactory
|
||||||
import net.i2p.client.I2PSession
|
import net.i2p.client.I2PSession
|
||||||
import net.i2p.client.streaming.I2PSocketManager
|
import net.i2p.client.streaming.I2PSocketManager
|
||||||
@@ -71,6 +73,10 @@ class Core {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.info "Initializing I2P context"
|
||||||
|
I2PAppContext.getGlobalContext().logManager()
|
||||||
|
I2PAppContext.getGlobalContext()._logManager = new MuWireLogManager()
|
||||||
|
|
||||||
log.info("initializing I2P socket manager")
|
log.info("initializing I2P socket manager")
|
||||||
def i2pClient = new I2PClientFactory().createClient()
|
def i2pClient = new I2PClientFactory().createClient()
|
||||||
File keyDat = new File(home, "key.dat")
|
File keyDat = new File(home, "key.dat")
|
||||||
|
75
core/src/main/groovy/com/muwire/core/util/JULLog.groovy
Normal file
75
core/src/main/groovy/com/muwire/core/util/JULLog.groovy
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
package com.muwire.core.util
|
||||||
|
|
||||||
|
import java.util.logging.Level
|
||||||
|
import java.util.logging.LogManager
|
||||||
|
import java.util.logging.Logger
|
||||||
|
|
||||||
|
import net.i2p.util.Log
|
||||||
|
|
||||||
|
class JULLog extends Log {
|
||||||
|
|
||||||
|
private static final Map<Integer, Level> I2P_TO_JUL = new HashMap<>()
|
||||||
|
static {
|
||||||
|
I2P_TO_JUL.put(Log.DEBUG, Level.FINE)
|
||||||
|
I2P_TO_JUL.put(Log.INFO, Level.INFO)
|
||||||
|
I2P_TO_JUL.put(Log.WARN, Level.WARNING)
|
||||||
|
I2P_TO_JUL.put(Log.ERROR, Level.SEVERE)
|
||||||
|
I2P_TO_JUL.put(Log.CRIT, Level.SEVERE)
|
||||||
|
}
|
||||||
|
|
||||||
|
private final Logger delegate
|
||||||
|
private final Level level
|
||||||
|
|
||||||
|
public JULLog(Class<?> cls) {
|
||||||
|
super(cls)
|
||||||
|
delegate = Logger.getLogger(cls.getName())
|
||||||
|
level = findLevel(delegate)
|
||||||
|
}
|
||||||
|
|
||||||
|
public JULLog(String name) {
|
||||||
|
super(name);
|
||||||
|
delegate = Logger.getLogger(name)
|
||||||
|
level = findLevel(delegate)
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Level findLevel(Logger log) {
|
||||||
|
while (log.getLevel() == null)
|
||||||
|
log = log.getParent()
|
||||||
|
log.getLevel()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void log(int priority, String msg) {
|
||||||
|
delegate.log(I2P_TO_JUL.get(priority), msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void log(int priority, String msg, Throwable t) {
|
||||||
|
delegate.log(I2P_TO_JUL.get(priority), msg, t)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldLog(int priority) {
|
||||||
|
delegate.isLoggable(I2P_TO_JUL.get(priority))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldDebug() {
|
||||||
|
level.intValue().intValue() <= Level.FINE.intValue()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldInfo() {
|
||||||
|
level.intValue().intValue() <= Level.INFO.intValue()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldWarn() {
|
||||||
|
level.intValue().intValue() <= Level.WARNING.intValue()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldError() {
|
||||||
|
level.intValue().intValue() <= Level.SEVERE.intValue()
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,21 @@
|
|||||||
|
package com.muwire.core.util
|
||||||
|
|
||||||
|
import net.i2p.I2PAppContext
|
||||||
|
import net.i2p.util.Log
|
||||||
|
import net.i2p.util.LogManager
|
||||||
|
|
||||||
|
class MuWireLogManager extends LogManager {
|
||||||
|
|
||||||
|
MuWireLogManager() {
|
||||||
|
super(I2PAppContext.getGlobalContext())
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Log getLog(Class<?> cls, String name) {
|
||||||
|
if (cls != null)
|
||||||
|
return new JULLog(cls)
|
||||||
|
new JULLog(name)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Reference in New Issue
Block a user