hook up the I2P logging system to JUL

This commit is contained in:
Zlatin Balevsky
2019-05-26 13:52:42 +01:00
parent ef39ca3943
commit 84f6e5ec0f
3 changed files with 102 additions and 0 deletions

View File

@@ -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")

View 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()
}
}

View File

@@ -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)
}
}