Updated LogUtil and added example properties file
This commit is contained in:
parent
63f191db4c
commit
3419ba8864
5 changed files with 64 additions and 33 deletions
BIN
Zutil.jar
BIN
Zutil.jar
Binary file not shown.
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
10
src/zutil/log/logging.properties.example
Executable file
10
src/zutil/log/logging.properties.example
Executable 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
|
||||||
|
|
@ -230,12 +230,15 @@ 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());
|
||||||
logRequest(parser, client_session, cookie, request, time);
|
page.respond(out, parser, client_session, cookie, request);
|
||||||
|
if(LogUtil.isLoggable(page.getClass(), Level.FINER))
|
||||||
|
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);
|
||||||
logRequest(parser, client_session, cookie, request, time);
|
if(LogUtil.isLoggable(defaultPage.getClass(), Level.FINER))
|
||||||
|
logRequest(parser, client_session, cookie, request, time);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
out.setStatusCode( 404 );
|
out.setStatusCode( 404 );
|
||||||
|
|
@ -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,25 +272,25 @@ 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,
|
|
||||||
Map<String,Object> client_session,
|
|
||||||
Map<String,String> cookie,
|
|
||||||
Map<String,String> request,
|
|
||||||
long time){
|
|
||||||
// Debug
|
|
||||||
if(logger.isLoggable(Level.FINEST) ){
|
|
||||||
logger.finer(
|
|
||||||
"Received request: " + parser.getRequestURL()
|
|
||||||
+ " (client_session: " + client_session
|
|
||||||
+ ", cookie: " + cookie
|
|
||||||
+ ", request: " + request + ")"
|
|
||||||
+ ", time: "+ StringUtil.formatTimeToString(System.currentTimeMillis() - time));
|
|
||||||
} else if(logger.isLoggable(Level.FINER)){
|
|
||||||
logger.finer(
|
|
||||||
"Received request: " + parser.getRequestURL()
|
|
||||||
+ ", time: "+ StringUtil.formatTimeToString(System.currentTimeMillis() - time));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static void logRequest(HttpHeaderParser parser,
|
||||||
|
Map<String,Object> client_session,
|
||||||
|
Map<String,String> cookie,
|
||||||
|
Map<String,String> request,
|
||||||
|
long time){
|
||||||
|
// Debug
|
||||||
|
if(logger.isLoggable(Level.FINEST) ){
|
||||||
|
logger.finer(
|
||||||
|
"Received request: " + parser.getRequestURL()
|
||||||
|
+ " (client_session: " + client_session
|
||||||
|
+ ", cookie: " + cookie
|
||||||
|
+ ", request: " + request + ")"
|
||||||
|
+ ", time: "+ StringUtil.formatTimeToString(System.currentTimeMillis() - time));
|
||||||
|
} else if(logger.isLoggable(Level.FINER)){
|
||||||
|
logger.finer(
|
||||||
|
"Received request: " + parser.getRequestURL()
|
||||||
|
+ ", time: "+ StringUtil.formatTimeToString(System.currentTimeMillis() - time));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
2
test/zutil/test/SSDPClientTest.java
Normal file → Executable file
2
test/zutil/test/SSDPClientTest.java
Normal file → Executable 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");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue