2011-10-28 13 views
6

Chúng tôi đã bật tính năng ghi nhật ký jboss trong ứng dụng của mình. Hiện tại, chúng tôi đang sử dụng 'Trình xử lý tập tin xoay' để đăng nhập mọi thứ vào tệp. Điều này được định nghĩa trong tệp jboss 'standalone.xml'. Chúng tôi cũng đang xem xét việc ghi nhật ký một số thông tin vào cơ sở dữ liệu ghi nhật ký; vì mục đích xây dựng các chỉ số, v.v.
Mở rộng đăng nhập JBoss AS 7 vào cơ sở dữ liệu

Ai đó có thể cung cấp một số tùy chọn mà chúng tôi có thể sử dụng tại đây. Mục tiêu cuối cùng của chúng tôi là khi mọi thứ đang được ghi vào tệp; chúng tôi sẽ chặn và viết nó cho DB. Chúng tôi không muốn làm điều đó trực tuyến vì đó sẽ là một cuộc gọi chặn.

Trả lời

0

Sử dụng AsyncAppender và đính kèm DBAppender vào đó.

Something như thế này cho các phần async:

<async-handler name="ASYNC"> 
    <level name="DEBUG"/> 
    <queue-length value="1024"/> 
    <overflow-action value="BLOCK"/> 
    <subhandlers> 
    <handler name="CONSOLE"/> <!-- if you have these defined --> 
    <handler name="FILE"/> <!-- if you have these defined --> 
    <handler name="DB"/> 
    </subhandlers> 
</async-handler> 

Và sau đó xác định DB như một DBAppender (hoặc JDBCAppender tùy thuộc vào những gì bạn đã cài đặt).

<log4j-appender name="DB" class="org.apache.log4j.jdbc.JDBCAppender"> 
     <error-manager> 
     <only-once/> 
     </error-manager> 

    <level name="INFO"/> 
    <properties> 
     <property name="URL">jdbc:postgresql://localhost:5432/data</property> 
    <property name="driver">org.postgresql.Driver</property> 
    <property name="user">admin</property> 
    <property name="password">admin</property> 
    </properties> 

    <formatter> 
     <pattern-formatter pattern="insert into Log values (current_timestamp,'%c', '%t','%p','%m')" /> 
     </formatter> 
    </log4j-appender> 
+0

bạn có thể cung cấp thêm một số chi tiết không? – shergill

+0

Ngoài ra nó phụ thuộc vào phiên bản JBoss bạn đang sử dụng. –

+0

bạn đang thực hiện những thay đổi nào sau đây? standalone.xml? – shergill