日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

log4jdbc oracle,通过weblogic配置log4jdbc数据源,在项目中使用该数据源,输出sql

發布時間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 log4jdbc oracle,通过weblogic配置log4jdbc数据源,在项目中使用该数据源,输出sql 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過weblogic配置log4jdbc數據源,在項目中使用該數據源,輸出sql

通過weblogic配置log4jdbc數據源,在項目中使用該數據源,輸出sql

說一下配置:

服務器weblogic

項目使用的是spring管理Bean,數據源配置也是基于Spring的dbcp數據源,并且用log4jdbc進行sql日志打印,采用logback+slf4j日志打印。log4jdbc能夠很好打印sql,并且參數也帶上了,這在項目開發與后期系統出現的問題查找原因都有很大的幫助。

數據庫配置如下:

jdbc.driverClassName=net.sf.log4jdbc.DriverSpy

jdbc.url=jdbc:oracle:thin:@ip:port/dev

jdbc.username=user

jdbc.password=pwd

spring配置如下:

在項目后期,客戶要求不能使用項目配置的數據源,要使用weblogic的數據源。客戶為大,就這么改了,改了后,log4jdbc的sql再也打印不出來了。

這是weblogic數據源的配置:

之前項目中有sql打印,log4jdbc也能打印出sql執行的參數,這樣就能大概知道項目執行情況。沒有了sql后,如果出了問題,不好定位問題,因此為了打印出sql進行了測試。

spring配置改為如下:

lmsDatasource

false

t3://ip:weblogicport

weblogic.jndi.WLInitialContextFactory

weblogic數據源改為如下配置:

加載該驅動,需要用到如下幾個jar包:

log4jdbc3-1.2beta2.jar

logback-classic-1.1.1.jar

logback-core-1.1.1.jar

slf4j-api-1.6.4.jar

并且weblogic啟動時要加載這幾個jar包。

在有篇文章中(http://blog..net/yjq8116/article/details/4498622)看到說直接將jar放到{domain_home}/lib中,會自動加載第三方jar包。但是我這樣做了并沒有生效。將jar包放在{wls_home}/server/lib下也沒有生效,放在jdk目錄加載第三方jar包的路徑:{java_home}/jre/lib/ext,這個可以加載到了,但是這樣會對本地的所有java程序都生效,會影響到其他項目的,因此不應該放在該目錄下。

還要繼續想辦法,為什么明明weblogic自己也說了可以自動加載{domain_home}/lib下的jar,卻沒有加載了,百思不得其解。

后來在weblogic的啟動日志中看到如下片段:

這個是weblogic加載第三方jar包的path配置,但是并沒有發現該路徑。在{domain_home}/bin/setDomainEnv.sh中看到了

這個weblogic.ext.dirs正是weblogic的console中加載的classPath。因此,想到可以直接手動添加此路徑,這樣就可以讓weblogic在啟動時加載第三方jar包了。

這是修改后的,變量${DOMAIN_HOME}的該文件之前,weblogic已有的定義。

修改后,啟動weblogic,在{domain_home}執行命令:nohup ./startWebLogic.sh >./logs/weblogic"`date +%Y%m%d%H%M`".log 2>&1 &

啟動,發現console打印出了很多日志,都是DEBUG級別的(關于LOG的級別,項目中用到的是logback,大家可以查找相關資料),這是最低的級別,所有的日志都會輸出,顯然這樣的輸出對我們來說并沒有多大的意義,而且還影響系統性能。

但是,日志的打印,是根據自定義的格式進行打印的,為什么weblogic會打印這樣的配置,而且還是debug級別的?后來在網上查到關于weblogic的日志配置問題,查到了這篇文章:http://bbs.middleware123.com/forum.php?mod=viewthread&tid=4532,上面說可以配置命令

set LOG4J_CONFIG_FILE=/root/bea/user_projects/domains/MedRecDomain/log4jConfig.xml

來配置log4j的文件(logback跟log4j都是日志系統,具體區別可以查找相關資料)。還真在setDomainEnv.sh文件找找到了這個配置:

我想對于程序員,雖然不了解shell,但是看到這個也大概知道這個意思吧,如果有變量:LOG4J_CONFIG_FILE,就加到JAVA_PROPERTIES中,我也不知道這個JAVA_PROPERTIES是干嘛的,但是改一下,或許有效果。突然覺得對于這個weblogic,真的很多都只能去動手試。增加了如下配置:

下面是我logback.xml的主要配置

logs/weblogiclog.txt

logs/weblogiclog-%d{yyyy-MM-dd}.%i.log

10

class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

500MB

%d{yy/MM/dd HH:mm:ss} %5level [%C{1}.%M\(%L\)] %m%n

%d{yy/MM/dd HH:mm:ss} %5level %caller{1} - %msg%n

下面是最終weblogic的console截圖,打印日志的記錄確實同我的配置的logback.xml的一致,也能打印sql參數了,并且之前在{domain_home}/logs/目錄沒有出現logs/weblogiclog.txt的滾動日志,現在也有了。弄了好久,總算弄出來了:

其實在項目中也有logback的配置,配置的logger appender是:

logs/log.txt

logs/log-%d{yyyy-MM-dd}.%i.log

10

class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

500MB

%d{yy/MM/dd HH:mm:ss} %5level [%C{1}.%M\(%L\)] %m%n

后面又測試了一下,發現,weblogic的logback配置只能放在該domain下。并且如果直接放在domain目錄下,也是可以不需要LOG4J_CONFIG_FILE配置。又試了幾次放在其他目錄的,發現起不到效果,不知道是不是只能放在domain目錄下。

但是并沒有生成項目中使用的配置,沒有生成log.txt文件。這個之前是可以生成的,在改了這樣的數據源之后,就不出來了,不知道是不是由于weblogic本身已經支持對logback的支持了,因此就將項目中的logback所配置的進行了屏蔽呢?

2019-11-19 22:16

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的log4jdbc oracle,通过weblogic配置log4jdbc数据源,在项目中使用该数据源,输出sql的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。