我正在我的应用程序中编写一个类来插入oracle数据库的日志。 我用过log4j。 我做了这些配置:
<appender name="DB" class="org.apache.log4j.jdbc.JDBCAppender">
<param name="URL" value="jdbc:oracle:thin:@10.60.2.8:1521:dbName"/>
<param name="Driver" value="oracle.jdbc.driver.OracleDriver"/>
<param name="User" value="test"/>
<param name="Password" value="test"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="INSERT INTO LOG_OVERLOADREQUEST VALUES('%x{today}','%x {currentRequestURI}','%x {UserName}','%x {URI}','%x {method}','%x {CPULoad}','%x {timeSpent}','%x {lastCPULoad}','%x {firstFreeMemory}','%x {lastFreeMemory}','%x {appID}','%x {sessionId}')"/>
</layout>
</appender>
这是我班上的代码:
private Logger overLoadRequestDB=Logger.getLogger("log4j.rootLogger");
Timestamp today = new Timestamp(System.currentTimeMillis());
MDC.put("today", today);
MDC.put("currentRequestURI", currentRequestURI);
MDC.put("UserName", "Test");
MDC.put("URI", currentRequestURI);
MDC.put("method", "test");
MDC.put("CPULoad",1234);
MDC.put("timeSpent", 1234);
MDC.put("lastCPULoad", 123);
MDC.put("firstFreeMemory", 123);
MDC.put("lastFreeMemory", 123);
MDC.put("appID", 1);
MDC.put("sessionId","123");
overLoadRequestDB.debug("test");
overLoadRequestDB.info("test");
当我运行应用程序时,我遇到了这个错误: ORA-01858:找到了一个非数字字符,其中包含一个数字
我认为这与日期有关,但我做了我能做的一切,我不知道问题是什么。