由於erp專案中沒有視覺化的日誌管理,配置一些開源的日誌系統又會占用一些伺服器資源,因此想模組化的處理系統的執行日誌,該日誌只記錄各模組的執行日誌,不需要記錄所有的系統日誌(記錄全部則會影響效能)。由於各模組的執行日誌相對整個系統的日誌來說較少,對系統效能的影響較小,因此開發該模組是可行的。
由於考慮到非侵入式,先看一下之前的日誌配置。
發現採用的是logback日誌。
但是仔細看完**後發現用到的logger物件卻有兩個(即,不同的類總共用到了兩種不同的logger類)
import org.apache.log4j.logger;
import org.slf4j.logger;
即log4j 和 slf4j這兩種。
甚至有些的在引用的時候,出現了下列用法(log4j的情況),這樣會導致每個例項都會建立乙個日誌物件(不好)
private logger logger = logger.
getlogger
(getclass()
);//用法有點問題
正確的應該建乙個靜態變數,歸屬於該類,而不是每個例項,如下(使用slf4j的情況):
private
static logger logger = logge***ctory.
getlogger
(currentclass.
class
);
(注意:獲取日誌物件時,log4j,使用的是logger.getlogger; 而slf4j,使用的是logge***ctory.getlogger)
看完上述情況,感覺日誌使用比較混亂,所以接下來打算統一使用一種:自定義模組級日誌。
首先新建乙個分支來開發該模組。
一、表設計:
create table "public"
."module_log"
("id" serial8,
"uuid"
varchar
(255),
"uuid_t"
varchar
(255),
"creater"
varchar
(255),
"create_time"
timestamp(6
),"updater"
varchar
(255),
"update_time"
timestamp(6
),"module_name"
varchar
(255),
"package_name"
varchar
(255),
"method_name"
varchar
(255),
"line_number" int4,
"level"
varchar
(255),
"msg"
varchar
(255),
constraint "module_log_pkey" primary key (
"id"
),
constraint "module_log_unique_pk" unique (
"module_name"))
;comment on column "public"
."module_log"
."module_name" is '模組名稱'
;comment on column "public"
."module_log"
."package_name" is '**包、類名'
;comment on column "public"
."module_log"
."method_name" is '**方法'
;comment on column "public"
."module_log"
."line_number" is '**行號'
;comment on column "public"
."module_log"
."level" is '日誌級別'
;comment on column "public"
."module_log"
."msg" is '日誌資訊'
;
四、寫乙個日誌實現類
五、測試一下有沒有用,寫乙個測試方法
六、結果:日誌已經比較詳細
該日誌類的應用場景為模組級,如果需要擴充套件,則需要再寫其他的實現類
日誌的管理
系統日誌是記錄系統中硬體,軟體和系統問題的資訊,同時還可以監控系統發生的事件,比如可以通過日誌來檢查錯誤發生的原因,或者檢查被攻擊時攻擊者留下的痕跡.系統日誌包括系統日誌,應用程式日誌和安全日誌.在centos6.x之後,系統中用rsyslogd取代了syslogd服務。rsyslogd更加先進,功...
Linux日誌的管理
auth 使用者登陸日誌 authpriv 服務認證日誌 kern 核心日誌 cron 定時任務日誌 lpr 印表機日誌 mail 郵件日誌 news 新聞 user 使用者相關程式日誌 local 1 7 使用者自定義日誌 debug 系統除錯資訊 info 常規資訊 warning 警告資訊 e...
mysql的日誌管理
日誌操作是資料庫維護中最重要的手段之一,日誌檔案會記錄mysql伺服器的各種資訊,所以當mysql伺服器遭到意外損壞時,不僅可以通過日誌檔案來檢視出錯的原因,而且還可以通過日誌檔案進行資料恢復。mysql的日誌檔案分為二進位制日誌,錯誤日誌,通用查詢日誌,慢查詢日誌。除了二進位制檔案外,其他日誌檔案...