2015-05-27 32 views
9

Tôi đã nhầm lẫn khi thiết lập nhật ký trong Wildfly-8.2.0. Ban đầu tôi đã sử dụng hệ thống đăng nhập của riêng mình, với log4j.xml được tích hợp vào tệp WAR, tất cả đều hoạt động rất tốt. Tuy nhiên, khi tôi thực hiện bất kỳ thay đổi nào đối với cấu hình nhật ký, tôi cần triển khai lại ứng dụng để thực hiện các thay đổi có hiệu lực. Vì vậy, tôi chuyển sang hệ thống phụ JBoss logger. Dưới đây là cấu hình tôi đã làm cho standalone.xml từ jboss-cliCách đúng để định cấu hình nhật ký trong Wildfly 8.2

/subsystem=logging/custom-handler=myplatform:add(class=org.apache.log4j.RollingFileAppender, module=org.jboss.log4j.logmanager, formatter="%d{.yyyy-MM-dd} %-5p [%c] (%t) %s%E%n", properties={MaxFileSize=1024000,maxBackupIndex=20,file="${jboss.server.log.dir}/myplatform-debug.log"}) 

nên thêm các cấu hình dưới đây trong standalone.xml

  <custom-handler name="example" class="org.apache.log4j.RollingFileAppender" module="org.jboss.log4j.logmanager"> 
       <formatter> 
        <pattern-formatter pattern="%d{.yyyy-MM-dd} %-5p [%c] (%t) %s%E%n"/> 
       </formatter> 
       <properties> 
        <property name="MaxFileSize" value="1024000"/> 
        <property name="maxBackupIndex" value="20"/> 
        <property name="file" value="${jboss.server.log.dir}/ott-platform-log.log"/> 
       </properties> 
      </custom-handler> 

Và sau đó một logger cho điều này

<logger category="com.mycompany.project.module1"> 
    <level name="DEBUG"/> 
    <handlers> 
     <handler name="myplatform"/> 
    </handlers> 
</logger> 

Tất cả hoạt động tốt , nhưng tất cả nhật ký ứng dụng của tôi cũng được đăng nhập vào nhật ký máy chủ. Và, trong bảng điều khiển đăng nhập quá. Tôi không muốn điều này xảy ra, sau khi tất cả tôi đã cấu hình các logger riêng cho dự án của tôi! Làm cách nào để dừng nhật ký máy chủ nhật ký của tôi đăng nhập vào server.log? Hoặc là có một cách để sử dụng một appender cho điều này? Nếu thế thì sao?

Trả lời

20

Từ "sạch" standalone.xml tôi thực hiện như sau:

  1. Thêm một handler ra cửa sổ Console:
<profile> 
    <subsystem xmlns="urn:jboss:domain:logging:2.0"> 
     ... 
     <console-handler name="CONSOLE_HANDLER"> 
      <level name="DEBUG"/> 
      <formatter> 
       <named-formatter name="ECLIPSE_PATTERN"/> 
      </formatter> 
     </console-handler> 
     ... 
  1. Nếu bạn muốn một tệp nhật ký:
<profile> 
    <subsystem xmlns="urn:jboss:domain:logging:2.0"> 
     ... 
     <periodic-rotating-file-handler name="MI_PROJECT_FILE_HANDLER" autoflush="true"> 
      <formatter> 
       <named-formatter name="ECLIPSE_PATTERN"/> 
      </formatter> 
      <file relative-to="jboss.server.log.dir" path="myProject.log"/> 
      <suffix value=".yyyy-MM-dd"/> 
      <append value="true"/> 
     </periodic-rotating-file-handler> 
     ... 
  1. Các logger (cấp tương tự như 1 và 2) thông báo các use-parent-handlers
<logger category="com.company.project" use-parent-handlers="false"> 
    <level name="DEBUG"/> 
    <handlers> 
     <handler name="MI_PROJECT_FILE_HANDLER"/> 
     <handler name="CONSOLE_HANDLER"/> 
    </handlers> 
</logger> 
  1. Tôi đã sử dụng một mô hình tùy chỉnh (cùng cấp):
<formatter name="ECLIPSE_PATTERN"> 
    <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> 
</formatter> 
  1. Giữ chắc chắn điều này:
<root-logger> 
    <level name="INFO"/> 
    <handlers> 
     <handler name="CONSOLE"/> 
     <handler name="FILE"/> 
    </handlers> 
</root-logger> 
+3

Đã thử nghiệm với các cấu hình khác nhau dựa trên cách tiếp cận của bạn, tôi tìm thuộc tính, sử dụng-cha mẹ-xử lý = "sai", là tất cả những gì cần thiết, để vô hiệu hóa đăng nhập vào server.log. –

+0

Được thăng hạng. giữ dòng đó in đậm ... nhưng giữ quá tất cả phần còn lại của cấu hình nếu ai đó thấy hữu ích :) – Manu

+2

Đúng là tất cả những gì cần thiết là 'use-parent-handlers = false' để làm những gì bạn đang cố gắng làm . Tôi cũng khuyên bạn không nên cập nhật XML theo cách thủ công, nhưng sử dụng CLI hoặc bảng điều khiển web để thực hiện thay đổi ghi nhật ký khi chúng có thể được thực hiện khi chạy mà không cần tắt máy chủ hoặc không phải khởi động lại máy chủ. –

Các vấn đề liên quan