log4j 日誌輸出到資料庫
一、前提條件 系統必須是使用LOG4J進行日誌管理,否則方法無效。 系統必須包含commons-logging-xxx.jar,log4j-xxx.jar這兩個JAR包,XXX為版本號。 二、操作步驟 1、建立日誌表 要把日誌持久化,必須在資料庫中建立一張用來儲存日誌資訊的表,表內欄位為日誌 的一個主要屬性包括:操作類,執行方法,列印時間,日誌級別,日誌內容。 CREATE TABLE RESLOG (LOGID VARCHAR2(20) NOT NULL, CLASS VARCHAR2(200), METHOD VARCHAR2(100), CREATETIME DATE, LOGLEVEL VARCHAR2(50), MSG VARCHAR2(4000)) 因為儲存的類為類的全部路徑,所以CLASS欄位長度需要比較大。 2、日誌管理配置 LOG4J主要有兩種配置檔案.properties和.xml,這裡以properties檔案為基礎來講 述,關於XML檔案的配置,相信大家看完下面的介紹也一樣能輕鬆完成。 通常在LOG4J.PROPERTIES檔案的第一行是: log4j.rootLogger= XXX,這句是控制日誌的輸出,如果想吧日誌輸出到資料庫, 則需要在XXX中新增“DB”,如log4j.rootLogger=INFO,stdout,Platform,db。上面 這句就是把日誌中級別為INFO的資訊輸出到STDOUT,PLATFORM和DB (DATABASE)中。 配置好如上的資訊,LOG4J就知道使用者是想把資訊存入資料庫,接下來我們就要來 配置資料庫的相關資訊(包括快取,資料庫連線資訊,和執行SQL),配置資訊如下: ###JDBCAppender log4j.appender.db = org.apache.log4j.jdbc.JDBCAppender //這個配置是選擇使用JDBCAppender方法,將日誌資訊儲存到資料庫。當然,如果你還要做其他操作,可以自己寫個類,繼承JDBCAppender就OK了。 log4j.appender.db.BufferSize=1 //這個配置是告訴LOG4J,有多少條日誌資訊後才存入資料庫,我這裡是1,就是說有一條就查一條,顯然這樣在生產環境下是很影響系統性能的。 log4j.appender.db.driver=oracle.jdbc.driver.OracleDriver //這個配置是告訴LOG4J,做資料庫儲存所用的驅動。 log4j.appender.db.URL=jdbc:oracle:thin:@<ip>:<port>:<sid> //這個配置資料庫連線的URL,不用說也都知道。 log4j.appender.db.user=XXX log4j.appender.db.password=XXX //上面兩個是資料庫連線時的使用者名稱和密碼 log4j.appender.db.sql=insert into RESLOG (LogId,Class,Method,createTime,LogLevel,MSG) values (SQ_RESLOG_LOGID.Nextval,'%C','%M', to_date('%d{yyyy-MM-dd HH:mm:ss}','yyyy-MM-dd HH24:mi:ss'),'%p','%m') //這個配置是告訴當LOG4J吧日誌儲存資料庫時用的SQL語句。SQ_RESLOG_LOGID.Nextval是我建的一個SEQUENCE;‘%C’是日誌中的CLASS;‘%M’是列印日誌是執行到類裡的方法;‘%d’是列印的時間,它支援格式化;‘%P’是日誌級別,包括INFO、DEBUG、ERROR等;‘%m’是MSG,日誌內容。注意這裡的引數區分大小寫。 log4j.appender.db.layout=org.apache.log4j.PatternLayout 通過上面的配置,現在再啟動服務,LOG4J就會自動把原來儲存在.LOG檔案中的資訊,同時儲存到資料庫了。
-----------------------例子:mysql
log4j.rootLogger=debug,stdout,R,db
########################################JDBCAppender
log4j.appender.db = org.apache.log4j.jdbc.JDBCAppender
log4j.appender.db.BufferSize=10
log4j.appender.db.driver=com.mysql.jdbc.Driver
log4j.appender.db.URL=jdbc:mysql://134.32.32.122:9527/LOG_GATEWAY?useUnicode=true&characterEncoding=GBK
log4j.appender.db.user=jzgjxj
log4j.appender.db.password=abcd1234
log4j.appender.db.sql=INSERT INTO JINAN(USER_ID,LOGGER,LEVEL,MESSAGE) VALUES('191','%C','%p','%m')
log4j.appender.db.layout=org.apache.log4j.PatternLayout
log4j.appender.db.Threshold=WARN
########################################JDBCAppender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.Threshold=DEBUG
log4j.appender.stdout.layout.ConversionPattern=%-5p %l%n%4x- %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log/log.txt
log4j.appender.R.MaxFileSize=10240KB
log4j.appender.R.MaxBackupIndex=9
log4j.appender.R.layout=org.apache.log4j.PatternLayout
#log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-4r %-5p [%t %c - %m%n
log4j.appender.R.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss} %l %-4r [%t\r\n - %m%n
log4j.logger.com.tidestone.xj.corba.topoResource.TopSyncTask=debug,TopSyncTasklog
log4j.logger.com.tidestone.xj.corba.helper.PathRouteHelper=debug,TopSyncTasklog
log4j.logger.com.tidestone.xj.corba.topoResource.EmsData2NmsDataWorker=debug,TopSyncTasklog
log4j.appender.TopSyncTasklog=org.apache.log4j.RollingFileAppender
log4j.appender.TopSyncTasklog.layout=org.apache.log4j.PatternLayout
log4j.appender.TopSyncTasklog.layout.ConversionPattern=%-5p %d{MM-dd HH:mm:ss} %l%n%4x- %m%n
log4j.appender.TopSyncTasklog.File=log/TopSyncTaskLog.txt
log4j.appender.TopSyncTasklog.MaxFileSize=1000KB
log4j.appender.TopSyncTasklog.MaxBackupIndex=9
建立資料庫:
DROP TABLE IF EXISTS `RAISECOM_JN`;
CREATE TABLE `RAISECOM_JN` (
`USER_ID` varchar(20) DEFAULT NULL,
`DATED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`LOGGER` varchar(500) DEFAULT NULL,
`LEVEL` varchar(100) DEFAULT NULL,
`MESSAGE` varchar(5000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;
相關推薦
log4j 日誌輸出到資料庫
一、前提條件 系統必須是使用LOG4J進行日誌管理,否則方法無效。 系統必須包含commons-logging-xxx.jar,log4j-xxx.jar這兩個JAR包,XXX為版本號。 二、操作步驟 1、建立日誌表
log4j日誌輸出到文件的配置
imp 名稱 1.0 sql apach warn ring source util 1.Maven的dependency 2.log4j.properties的配置 3.Junit的Test類 4.web.xml的配置(非必要) 5.spring的db.config的配置
log4j日誌輸出使用_1
詳細 per lsm sdc org gbm rpm veh mil 轉自https://www.cnblogs.com/sky230/p/5759831.html Log4j是幫助開發人員進行日誌輸出管理的API類庫。它最重要的特點就可以配置文件靈活的設置日誌信息的優
web專案Log4j日誌輸出路徑配置問題 問題描述:一個web專案想在一個tomcat下執行多個例項(通過修改war包名稱的實現),然後每個例項都將日誌輸出到tomcat的logs目錄下例項名命名的文
問題描述:一個web專案想在一個tomcat下執行多個例項(通過修改war包名稱的實現),然後每個例項都將日誌輸出到tomcat的logs目錄下例項名命名的資料夾下進行區分檢視每個例項日誌,要求通過儘可能少的改動配置檔案,最好修改例項名後可以不修改log4j的配置檔案。 實現分析:一般實現上面需求,需要在修
log4j 日誌輸出級別
一共分為五個級別:DEBUG、INFO、WARN、ERROR和FATAL。這五個級別是有順序的,DEBUG < INFO < WARN < ERROR < FATAL,明白這一點很重要,這裡Log4j有一個規則:假設設定了級別為P,如果發生了一個級別Q比P高,則可以啟動,否則遮蔽掉。
JAVA Tomcat Log4j 日誌輸出到檔案
工程引用 Log4j.jar 要輸出日誌的類中引用 import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; 建立log4j.prope
web專案Log4j日誌輸出路徑配置問題
問題描述:一個web專案想在一個tomcat下執行多個例項(通過修改war包名稱的實現),然後每個例項都將日誌輸出到tomcat的logs目錄下例項名命名的資料夾下進行區分檢視每個例項日誌,要求通過儘可能少的改動配置檔案,最好修改例項名後可以不修改log4j的配
Linux下java程式碼log4j日誌輸出中文出現亂碼,中文全部變成問號,解決辦法
問題描述: (1)log4j.xml和log4j.properties日誌輸出的編碼格式正常都設定為UTF-8 (2)cat命令獲取txt檔案,裡面的中文可以正常顯示 (3)log.***(info)中文全部出現亂碼 原因: linux本地設定的檔案編碼格式不是UT
Spark配置log4j日誌輸出
################################################################################ #①配置根Logger,其語法為: # #log4j.rootLogger = [level],appen
Tomcat連線池,以及 Webservice配置,以及log4j日誌輸出
用java寫的webservice,建立資料庫連線的時候,因為webservice介面要供很多使用者使用,這時如果把資料庫連線語句寫在使用者呼叫的我方的方法裡面,在方法裡面用完再關閉,也可以。但是用tomcat連線池,一開始就申請25個連線放著,最多50個(這個25和50都
log4j日誌輸出,以及生成日誌檔案
log4j.properties檔案配置如下: log4j.rootLogger=debug,appender,appender1 #如果在本地eclipse控制檯輸出 請解開下面的程式碼 #log4j.appender.appender=org.apache.log
log4j日誌輸出分級別或模組到不同檔案
一、 實現分模組,輸出到不同的日誌檔案, 以下是log4j.properties的實現 log4j.appender.file=org.apache.log4j.DailyRollingFileAppender log4j.appender.
Log4j日誌輸出詳細
日誌論 在應用程式中輸出日誌有有三個目的: (1)監視程式碼中變數的變化情況,把資料週期性地記錄到檔案中供其他應用進行統計分析工作。 (2)跟蹤程式碼執行進軌跡,作為日後審計的依據。 (3)擔當整合開發環境中的偵錯程式,向檔案或控制檯列印程式碼的除錯資訊。 Ap
JAVA中使用log4j及slf4j進行日誌輸出的方法
cto 所在 inf 官方 pat etl 註意 actor 結果 JAVA中輸出日誌比較常用的是log4j,這裏講下log4j的配置和使用方法,以及slf4j的使用。 一、下載log4j的架包,並導入項目中,如下: 二、創建log4j.prope
(轉)log4j(五)——如何控制不同目的地的日誌輸出?
arc config scribe 原則 log4j min logging 主機 我們 一:測試環境與log4j(一)——為什麽要使用log4j?一樣,這裏不再重述 1 老規矩,先來個栗子,然後再聊聊感受 package test.l
log4j配置輸出到多個日誌文件
基準 方式 ref err logfile otl sni targe file 通常我們項目裏,有一些重要的日誌想單獨的輸出到指定的文件,而不是全總輸出到系統的日誌文件中。那麽我們log4j為我們提供了這種功能,以下我們來一步一步看是怎麽做的。這裏以pro
log4j(五)——如何控制不同目的地的日誌輸出?
主函數 exc not 文件復制 ron rst it is target sunday 一、測試環境 與log4j(一)——為什麽要使用log4j?一樣,這裏不再重述 二、老規矩,先來個例子,然後再聊聊感受 package com.sc.log4j; impo
log4j配置輸出到多個日誌文件(轉)
兩種模式 簡單 mylog 效果 evel ast mar 輸出 rop 參考資料:http://logging.apache.org/log4j/1.2/manual.html 通常我們項目裏,有一些重要的日誌想單獨的輸出到指定的文件,而不是全總輸出到系統的日誌文件中。那
Mybatis用log4j輸出日誌,輸出sql到控制臺
信息 配置 style rac sage pre SQ back rop log4jar包+log4j.properties百度雲下載地址永久有效: https://pan.baidu.com/s/15WZ-lcBPgFa-a6lkTVVvYw 1 導入jar包(直接復制j
log4j日誌不輸出的問題
今天伺服器上報錯,想先去看一下日誌進行排查,結果發現日誌很久都沒有輸出過了。從上午排查到下午,剛剛解決,因此記錄一下,但現在也只是知其然,並不知其所以然,所以如果大家有什麼想法請在下方評論。 先說一下環境,伺服器是linux,專案是執行在tomcat下的Spring專案,日誌用