Spring Boot 多線程開發(fā)之異步日志

阿里云優(yōu)惠神卷并淋、最高優(yōu)惠25%,值得擁有:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ryr8l9eb&utm_source=ryr8l9eb

背景

最近在進行大量數(shù)據(jù)的清洗和轉換工作珍昨,因為涉及的數(shù)據(jù)量和表的個數(shù)較多县耽,采用線程池的方式來進行多線程跑批處理句喷。每個表和每個數(shù)據(jù)的清洗是不同的線程,一旦發(fā)生異常酬诀,需要快速排查某個現(xiàn)場的執(zhí)行異常脏嚷,采用傳統(tǒng)的文本來進行排查或者通過日志解析后來排查,排查效率是非常低下的瞒御。如果可以通過數(shù)據(jù)的日志來排查呢父叙?是否更加簡單快捷?

無法輕易追溯的文本日志

工具選型

通過考慮肴裙,log4j2和logback都能夠支持異步輸出到DB的趾唱。筆者選用的是logback,主要是因為spring boot admin支持對logback進行日志級別的動態(tài)控制蜻懦。

spring boot admin動態(tài)日志級別控制
數(shù)據(jù)庫日志

配置步驟

Mave依賴

1甜癞、spring boot
1、spring boot admin 依賴

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.2.RELEASE</version>
    </parent>

    <properties>
        <java.version>1.7</java.version>
        <boot.admin.version>1.4.2</boot.admin.version>
    </properties>
<dependencies>
     <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency
      <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-server</artifactId>
            <version>${boot.admin.version}</version>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-server-ui</artifactId>
            <version>${boot.admin.version}</version>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>${boot.admin.version}</version>
        </dependency>
<dependencies>

2宛乃、logback數(shù)據(jù)庫操作依賴

        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5</version>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0</version>
        </dependency>

配置

1悠咱、application.yml

logging:
    level:
        tk.mybatis: DEBUG
    path: /log
server:
    port: 8080
spring:
    application:
        name: ace-admin
    boot:
        admin:
             url: http://localhost:${server.port}

2、logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="oracle" class="ch.qos.logback.classic.db.DBAppender">
        <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
            <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
                <driverClass>oracle.jdbc.driver.OracleDriver</driverClass>
                <jdbcUrl>jdbc:oracle:thin:@//localhost:1521/xxx</jdbcUrl>
                <user>xxxx</user>
                <password>xxxx</password>
            </dataSource>
        </connectionSource>
    </appender>
    <!-- 針對性配置需要輸出到數(shù)據(jù)庫的包目錄和日志初始級別 -->
    <logger name="com.github.wxiaoqi.security" level="debug">
        <appender-ref ref="oracle" />
    </logger>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <jmxConfigurator/>
</configuration>

數(shù)據(jù)庫準備

logback數(shù)據(jù)庫腳本下載

驗證

spring boot admin驗證

訪問地址:http://localhost:8080/

效果如圖

logback db輸出日志驗證

根據(jù)日志輸出的需要征炼,配置(logback.xml)需要往數(shù)據(jù)庫輸出的日志的包路徑和級別析既。

    <logger name="com.github.wxiaoqi.security" level="debug">
        <appender-ref ref="oracle" />
    </logger>
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市谆奥,隨后出現(xiàn)的幾起案子眼坏,更是在濱河造成了極大的恐慌,老刑警劉巖酸些,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宰译,死亡現(xiàn)場離奇詭異,居然都是意外死亡魄懂,警方通過查閱死者的電腦和手機沿侈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逢渔,“玉大人肋坚,你說我怎么就攤上這事∷嗬” “怎么了智厌?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盲赊。 經(jīng)常有香客問我铣鹏,道長,這世上最難降的妖魔是什么哀蘑? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任诚卸,我火速辦了婚禮葵第,結果婚禮上,老公的妹妹穿的比我還像新娘合溺。我一直安慰自己卒密,他們只是感情好,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布棠赛。 她就那樣靜靜地躺著哮奇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪睛约。 梳的紋絲不亂的頭發(fā)上鼎俘,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機與錄音辩涝,去河邊找鬼贸伐。 笑死,一個胖子當著我的面吹牛怔揩,可吹牛的內(nèi)容都是我干的捉邢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼商膊,長吁一口氣:“原來是場噩夢啊……” “哼歌逢!你這毒婦竟也來了?” 一聲冷哼從身側響起翘狱,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎砰苍,沒想到半個月后潦匈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡赚导,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年茬缩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吼旧。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡凰锡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出圈暗,到底是詐尸還是另有隱情掂为,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布员串,位于F島的核電站勇哗,受9級特大地震影響,放射性物質發(fā)生泄漏寸齐。R本人自食惡果不足惜欲诺,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一抄谐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扰法,春花似錦蛹含、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至殴边,卻和暖如春憎茂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锤岸。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工竖幔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人是偷。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓拳氢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蛋铆。 傳聞我的和親對象是個殘疾皇子馋评,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容