当前位置: 代码迷 >> 应用服务器 >> weblogic91自定义http日记字段报错
  详细解决方案

weblogic91自定义http日记字段报错

热度:5243   发布时间:2013-02-26 00:00:00.0
weblogic91自定义http日志字段报错
本帖最后由 colourforU 于 2010-06-04 11:13:58 编辑 weblogic91使用扩展日志格式设置 HTTP 访问日志
登录console-Servers-AdminServer(admin)-Logging-选择http-Advanced-
其中Format 选择Extended 
Extended Logging Format Fields : x-TrueIP date time cs-method cs-uri sc-status bytes cs(Referer) cs(User-Agent) cs(cookie)

其中x-TrueIP为自定义字段
class 如下:
import weblogic.servlet.logging.CustomELFLogger;
import weblogic.servlet.logging.FormatStringBuffer;
import weblogic.servlet.logging.HttpAccountingInfo;

public class TrueIP implements CustomELFLogger
{
        //获取真实client ip
         public void logField(HttpAccountingInfo metrics, FormatStringBuffer buff)
{
String ip = metrics.getHeader("X-Forwarded-For");
if(ip == null || ip.length() == 0) {
        ip=metrics.getHeader("WL-Proxy-Client-IP");
    }
    if(ip == null || ip.length() == 0) {
        ip=metrics.getRemoteAddr();
    }
buff.appendValueOrDash(metrics.getHeader("ip"));
}
}

将TrueIP.class 增加到weblogic 的 setDomainEnv.sh 中
# SET THE CLASSPATH

CLASSPATH="${PRE_CLASSPATH}${CLASSPATHSEP}${WEBLOGIC_CLASSPATH}${CLASSPATHSEP}${POST_CLASSPATH}${CLASSPATHSEP}${WLP_POST_CLASSPATH}${CLASSPATHSEP}${WL_HOME}/integration/lib/util.jar::/home/weblogic/bea/user_projects/domains/base_domain/bin/TrueIP.class"
export CLASSPATH

重新启动weblogic nohup ./startWebLogic.sh >log&
报错信息如下:
WLS Start Mode=Development
.
CLASSPATH=:/home/weblogic/bea/patch_weblogic910/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/weblogic/bea/jdk150_04/lib/tools.jar:/home/weblogic/bea/weblogic91/server/lib/weblogic_sp.jar:/home/weblogic/bea/weblogic91/server/lib/weblogic.jar:/home/weblogic/bea/weblogic91/server/lib/webservices.jar::/home/weblogic/bea/weblogic91/common/eval/pointbase/lib/pbclient51.jar:/home/weblogic/bea/weblogic91/server/lib/xqrl.jar::/home/weblogic/bea/weblogic91/integration/lib/util.jar::/home/weblogic/bea/user_projects/domains/base_domain/bin/TrueIP.class:
.
PATH=/home/weblogic/bea/weblogic91/server/bin:/home/weblogic/bea/jdk150_04/jre/bin:/home/weblogic/bea/jdk150_04/bin:/usr/java/jdk1.5.0_11/bin:/usr/java/jdk1.5.0_11/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
.
***************************************************
*  To start WebLogic Server, use a username and   *
*  password assigned to an admin-level user.  For *
*  server administration, use the WebLogic Server *
*  console at http://hostname:port/console        *
***************************************************
starting weblogic with Java version:
java version "1.5.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode)
Starting WLS with line:
/home/weblogic/bea/jdk150_04/bin/java -client   -Xms1024m -Xmx1024m -XX:CompileThreshold=8000 -XX:PermSize=48m  -XX:MaxPermSize=128m  -Xverify:none  -da -Dplatform.home=/home/weblogic/bea/weblogic91 -Dwls.home=/home/weblogic/bea/weblogic91/server -Dwli.home=/home/weblogic/bea/weblogic91/integration  -Dweblogic.management.discover=true -Dweblogic.ProductionModeEnabled=  -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=/home/weblogic/bea/patch_weblogic910/profiles/default/sysext_manifest_classpath -Dweblogic.Name=AdminServer -Djava.security.policy=/home/weblogic/bea/weblogic91/server/lib/weblogic.policy   weblogic.Server
  相关解决方案