Java 有没有办法在OOWeb中关闭俏皮话?
还有什么方法可以更改底层Pygmy服务器的日志文件 这不是一个真正的问题,但我似乎无法停止写这样的东西。也许有人会发现它很有用 我知道重写HTTP服务器不是关闭玩笑的方法;)Java 有没有办法在OOWeb中关闭俏皮话?,java,http,Java,Http,还有什么方法可以更改底层Pygmy服务器的日志文件 这不是一个真正的问题,但我似乎无法停止写这样的东西。也许有人会发现它很有用 我知道重写HTTP服务器不是关闭玩笑的方法;) /*版权所有2010 Misha Koshelev。版权所有*/ 包com.mksoft.common; 导入java.io.BufferedReader; 导入java.io.InputStreamReader; 导入java.io.IOException; 导入java.io.PrintWriter; 导入java.i
/*版权所有2010 Misha Koshelev。版权所有*/
包com.mksoft.common;
导入java.io.BufferedReader;
导入java.io.InputStreamReader;
导入java.io.IOException;
导入java.io.PrintWriter;
导入java.io.UnsupportedEncodingException;
导入java.net.url解码器;
导入java.text.simpleDataFormat;
导入java.util.Date;
导入java.util.LinkedHashMap;
导入java.net.ServerSocket;
导入java.net.Socket;
/**
*简单HTTP服务器。
*
*@作者米莎·科舍列夫
*/
公共类HttpServer扩展线程{
/*
*常数
*/
/**
*404未找到结果
*/
受保护的最终静态字符串result404NotFound=“404未找到404未找到”;
/*
*变数
*/
/**
*HTTP服务器处理请求的端口。
*/
受保护的int端口;
public int getPort(){return port;}
公共无效设置端口(int _-port){port=_-port;}
/*
*建设者
*/
公共HttpServer(int\u端口){
设置端口(_端口);
}
/*
*助手
*/
/**
*错误
*/
受保护的无效错误(字符串消息){
System.err.println(消息);
System.err.flush();
}
/**
*调试
*/
受保护的布尔调试输出=true;
受保护的无效调试(字符串消息){
如果(调试输出){
错误(消息);
}
}
/**
*锁定对象
*/
私有对象锁=新对象();
/**
*我们应该退出吗?
*/
受保护布尔值doQuit=false;
/**
*我们结束了吗?
*/
受保护布尔值areWeDone=false;
/**
*处理POST请求头
*/
受保护的字符串processPostRequest(字符串url、LinkedHashMap头、字符串inputLine){
调试(“HttpServer.processPostRequest:url=\”“+url);
如果(调试输出){
for(字符串键:headers.keySet()){
调试(“HttpServer.processPostRequest:headers。”+key+“=\”“+headers.get(key)+\”);
}
}
调试(“HttpServer.processPostRequest:inputLine=\”“+inputLine+\”);
试一试{
inputLine=新的URLDecover().decode(inputLine,“UTF-8”);
}捕获(不支持的编码异常uee){
uee.printStackTrace();
}
String[]keyValues=inputLine.split(“&”);
LinkedHashMap post=新建LinkedHashMap();
对于(inti=0;i只需注释掉OowebServer类中的System.out.println(getQuip())行,然后重新编译以删除quip
我不确定pygmy使用的是什么logger,但我猜是它的java.util.logger,所以要以正常的方式进行配置。好,这是我的新解决方案:
/* Copyright (C) 2010 Misha Koshelev. All Rights Reserved. */
package com.mksoft.fbbday.main;
import java.io.InputStream;
import java.io.IOException;
import java.util.Properties;
import net.sf.ooweb.http.AbstractServer;
/**
* OowebServer
* No quips, own properties, logging options
*
* @author Misha Koshelev
*/
class OowebServer extends net.sf.ooweb.http.AbstractServer {
pygmy.core.Server pygmyServer;
Properties cfg=new Properties();
/**
* @throws IOException
*
*/
public OowebServer() throws IOException {
// Load Ooweb defaults
InputStream is=net.sf.ooweb.http.pygmy.OowebServer.class.getResourceAsStream("pygmy-default.properties");
cfg.load(is);
// Load additional properties
is=getClass().getResourceAsStream("/ooweb.properties");
Properties additional=new Properties();
additional.load(is);
cfg.putAll(additional);
}
/**
* @see net.sf.ooweb.http.Server#start()
*/
public void start() throws Exception {
pygmyServer=new pygmy.core.Server(cfg);
pygmyServer.start();
synchronized(pygmyServer) {
pygmyServer.wait();
}
}
public void stop() {
pygmyServer.shutdown();
}
}
对于日志记录,我使用groovy代码:
// Remove default loggers
def logger=Logger.getLogger('')
def handlers=logger.handlers
handlers.each() { handler->logger.removeHandler(handler) }
// Production version?
def productionVersion=true
if (productionVersion) {
// Log INFO and above to file
logger.setLevel Level.INFO
def fileHandler=new FileHandler("${dataDirectory}${File.separator}console.log");
fileHandler.setLevel Level.INFO
logger.addHandler(fileHandler)
} else {
// Log ALL to Console
logger.setLevel Level.ALL
def consoleHandler=new ConsoleHandler()
consoleHandler.setLevel Level.ALL
logger.addHandler(consoleHandler)
}
QED…或什么;)
米沙
// Remove default loggers
def logger=Logger.getLogger('')
def handlers=logger.handlers
handlers.each() { handler->logger.removeHandler(handler) }
// Production version?
def productionVersion=true
if (productionVersion) {
// Log INFO and above to file
logger.setLevel Level.INFO
def fileHandler=new FileHandler("${dataDirectory}${File.separator}console.log");
fileHandler.setLevel Level.INFO
logger.addHandler(fileHandler)
} else {
// Log ALL to Console
logger.setLevel Level.ALL
def consoleHandler=new ConsoleHandler()
consoleHandler.setLevel Level.ALL
logger.addHandler(consoleHandler)
}