2014-07-02 28 views
0

我正在使用log4j將數據插入數據庫。有沒有辦法解析XML中的「%m」或「%msg」或「%message」?

我要插入到這個簡單的表2列: Col1中:ID col2的:姓名

這是我的配置文件

<JDBC name="databaseAppender" tableName="test9" > 
    <ConnectionFactory class="log4j2.jdbc" method="getDatabaseConnection" /> 
    < Column name="id" pattern='%m' /> 
    < Column name="name" pattern='%m' /> 
</JDBC> 

,並在我的Java,我使用

logger.info("1", "john"); 

不管我做什麼,我只能插入這樣的:

Col1: 1 
Col2: 1 

我要實現的方式有插入這樣做:

Col1: 1 
Col2: john 

這甚至可能嗎?像通過解析%m?或者模式設計背後有什麼竅門?

感謝您的努力!

+0

%s就用字符串替換爲print_r的 –

+0

使用我將如何使用它的XML的一面呢?對於兩者來說,它會是%m嗎? – StruggleIsReal

回答

0

我自己找到了解決方案...只是爲了防止任何人被困在此。我很懷疑我將使用log4j2登錄到多個信息數據庫的唯一一個..

所以發送多個列的方式是通過ThreadContext:http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/ThreadContext.html

它就像一張地圖,你可以「把「一對字符串放進去。

在XML模式方面。剛做%X {}鍵

例如獲得的價值:

ThreadContext.put("id", 1); 
ThreadContext.put("name", john); 

注:必須以觸發上述數據發送給數據庫日誌的任何消息。

配置:

<column name="id" pattern="%x{id}"> 
<column name="name" pattern="%x{name}"> 
相關問題