Updated LogUtil and added example properties file

This commit is contained in:
Ziver Koc 2016-02-03 17:03:19 +01:00
parent 63f191db4c
commit 3419ba8864
5 changed files with 64 additions and 33 deletions

BIN
Zutil.jar

Binary file not shown.

View file

@ -24,6 +24,10 @@
package zutil.log; package zutil.log;
import zutil.io.file.FileUtil;
import java.io.FileInputStream;
import java.util.Enumeration;
import java.util.logging.*; import java.util.logging.*;
/** /**
@ -40,13 +44,13 @@ public class LogUtil {
* @return a new Logger for the calling class * @return a new Logger for the calling class
*/ */
public static Logger getLogger(){ public static Logger getLogger(){
return Logger.getLogger(getCalingClass()); return Logger.getLogger(getCallingClass());
} }
/** /**
* @return the parent class other than Logger in the stack * @return the parent class other than Logger in the stack
*/ */
public static String getCalingClass(){ public static String getCallingClass(){
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
for(int i=1; i<stackTraceElements.length ;++i){ for(int i=1; i<stackTraceElements.length ;++i){
String name = stackTraceElements[i].getClassName(); String name = stackTraceElements[i].getClassName();
@ -108,21 +112,36 @@ public class LogUtil {
*/ */
public static void setLevel(String name, Level level){ public static void setLevel(String name, Level level){
logger.fine("Changing log level of \""+name+"\" to \""+level.getLocalizedName()+"\""); logger.fine("Changing log level of \""+name+"\" to \""+level.getLocalizedName()+"\"");
Logger logger = Logger.getLogger(name); Logger newLogger = Logger.getLogger(name);
logger.setLevel(level); newLogger.setLevel(level);
newLogger.info("Changing log level of \""+name+"\" to \""+level.getLocalizedName()+"\"");
// Check if the logger has a handler // Check if the logger has a handler
if( logger.getHandlers().length == 0 ){ if( newLogger.getHandlers().length == 0 ){
// Create a new console handler // Create a new console handler
ConsoleHandler handler = new ConsoleHandler(); ConsoleHandler handler = new ConsoleHandler();
handler.setLevel( level ); handler.setLevel( level );
logger.addHandler( handler ); newLogger.addHandler( handler );
logger.setUseParentHandlers( false ); newLogger.setUseParentHandlers( false );
} }
else{ else{
// Set the level on the handlers // Set the level on the handlers
for (Handler handler : logger.getHandlers()) { for (Handler handler : newLogger.getHandlers()) {
handler.setLevel(level); handler.setLevel(level);
} }
} }
} }
public static boolean isLoggable(Class clazz, Level level){
return Logger.getLogger(clazz.getName()).isLoggable(level);
}
public static void readConfiguration(String file){
try{
FileInputStream in = new FileInputStream(FileUtil.find(file));
LogManager.getLogManager().readConfiguration(in);
in.close();
} catch (Exception e){
logger.log(Level.SEVERE, null, e);
}
}
} }

View file

@ -0,0 +1,10 @@
# logging.properties
# LogUtil.readConfiguration("logging.properties");
handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = zutil.log.CompactLogFormatter
java.util.logging.FileHandler.level = ALL
java.util.logging.FileHandler.formatter = zutil.log.CompactLogFormatter
zutil.level = ALL

View file

@ -230,11 +230,14 @@ public class HttpServer extends ThreadedTCPNetworkServer{
out.setCookie( "session_id", ""+client_session.get("session_id") ); out.setCookie( "session_id", ""+client_session.get("session_id") );
if( parser.getRequestURL() != null && pages.containsKey(parser.getRequestURL()) ){ if( parser.getRequestURL() != null && pages.containsKey(parser.getRequestURL()) ){
pages.get(parser.getRequestURL()).respond(out, parser, client_session, cookie, request); HttpPage page = pages.get(parser.getRequestURL());
page.respond(out, parser, client_session, cookie, request);
if(LogUtil.isLoggable(page.getClass(), Level.FINER))
logRequest(parser, client_session, cookie, request, time); logRequest(parser, client_session, cookie, request, time);
} }
else if( parser.getRequestURL() != null && defaultPage != null ){ else if( parser.getRequestURL() != null && defaultPage != null ){
defaultPage.respond(out, parser, client_session, cookie, request); defaultPage.respond(out, parser, client_session, cookie, request);
if(LogUtil.isLoggable(defaultPage.getClass(), Level.FINER))
logRequest(parser, client_session, cookie, request, time); logRequest(parser, client_session, cookie, request, time);
} }
else{ else{
@ -262,7 +265,6 @@ public class HttpServer extends ThreadedTCPNetworkServer{
} }
try{ try{
//logger.finest("Closing Connection: "+socket.getInetAddress().getHostName());
out.close(); out.close();
in.close(); in.close();
socket.close(); socket.close();
@ -270,8 +272,9 @@ public class HttpServer extends ThreadedTCPNetworkServer{
logger.log(Level.WARNING, "Could not close connection", e); logger.log(Level.WARNING, "Could not close connection", e);
} }
} }
}
private void logRequest(HttpHeaderParser parser, protected static void logRequest(HttpHeaderParser parser,
Map<String,Object> client_session, Map<String,Object> client_session,
Map<String,String> cookie, Map<String,String> cookie,
Map<String,String> request, Map<String,String> request,
@ -291,4 +294,3 @@ public class HttpServer extends ThreadedTCPNetworkServer{
} }
} }
} }
}

2
test/zutil/test/SSDPClientTest.java Normal file → Executable file
View file

@ -35,7 +35,7 @@ import java.util.logging.Level;
public class SSDPClientTest { public class SSDPClientTest {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
System.out.println(LogUtil.getCalingClass()); System.out.println(LogUtil.getCallingClass());
LogUtil.setGlobalLevel(Level.FINEST); LogUtil.setGlobalLevel(Level.FINEST);
SSDPClient ssdp = new SSDPClient(); SSDPClient ssdp = new SSDPClient();
ssdp.requestService("upnp:rootdevice"); ssdp.requestService("upnp:rootdevice");