Hiện tại tôi đang phát triển để trở thành dịch vụ web còn lại lớn (chức năng khôn ngoan) và tôi muốn ghi nhật ký thực sự tốt, vì vậy tôi có thể hiểu rõ những gì đang xảy ra ở đâu. Để bây giờ tôi sử dụng log4j cho khai thác gỗ, sử dụng thiết lập nối này:Cách tốt nhất để sửa đổi log4j được thêm vào để ghi nhật ký
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
trong đó sản xuất các loại bản ghi:
10:44:55,893 INFO [STDOUT] INFO : my.package.MyClass - I'm class message
Làm thế nào tôi có thể làm cho cái nhìn thông điệp này như tức
10:44:55,893 INFO : my.package.MyClass - I'm class message
Tôi có thể tạo một ứng dụng đặc biệt hay bất cứ thứ gì, và sử dụng nó trong một số lớp không có trong tất cả, nghĩa là tôi muốn ave trong vài trong số các bản ghi của tôi này:
Payload: some request parameters
Response: some response that my service returns
extra data : some extra data
Nếu không có những INFO [STDOUT] INFO my.package.MyClass in front of it
CẬP NHẬT
Tôi quên đề cập đến trong câu hỏi rằng tôi đang sử dụng Jboss 5. Tôi nghĩ rằng jboss có thể thêm 10:44:55,893 INFO [STDOUT]
vào bất kỳ định dạng nào mà tôi đặt trong cấu hình log4j của mình.
BOUNTY CẬP NHẬT
tôi đã thay đổi này:
<!-- ============================== -->
<!-- Append messages to the console -->
<!-- ============================== -->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="Target" value="System.out"/>
<param name="Threshold" value="INFO"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
</layout>
</appender>
này:
<!-- ============================== -->
<!-- Append messages to the console -->
<!-- ============================== -->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="Target" value="System.out"/>
<param name="Threshold" value="INFO"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%m%n"/>
</layout>
</appender>
Và nó làm việc, nhưng có vẻ như loại xấu xí để làm điều đó như thế này. Còn cách nào khác không? Tôi đang sử dụng kết hợp Spring MVC/JBoss.
Tôi bây giờ nhận được thông điệp sạch đẹp:
10:44:55,893 INFO : my.package.MyClass - I'm class message
mà không gây phiền nhiễu
10:44:55,893 INFO [STDOUT]
tiền tố
Không JBoss nhưng% d {ABSOLUTE} đã cho bạn 10: 44: 55,893 thư – Dima
Bạn có thể làm rõ - điều gì xấu về việc đặt mẫu chuyển đổi tùy chỉnh? – GargantuChet