Tôi có hai gói sau:Sử dụng Log4J 1. *, làm thế nào tôi có thể viết hai gói cho hai tệp riêng biệt?
com.mycorp.project.first
com.mycorp.project.second
Tôi muốn cấu hình Log4J (SLF4J) để viết các bản ghi từ một gói vào một tệp và từ gói khác sang tệp thứ hai. Tôi không muốn chúng được trộn lẫn với nhau.
Để rõ ràng, đây là một dự án/một quy trình đang chạy.
Tôi đã thử lọc và có nhật ký nhưng dường như chúng bị bỏ qua bởi log4j. Cả hai tệp đều giống hệt nhau.
Chỉnh sửa: Cảm ơn bạn đã trả lời cho đến nay, đây là những gì tôi đã có và nó không hoạt động. Cả hai tệp đầu ra đều giống hệt nhau.
<configuration debug="true">
<contextName>dev</contextName>
<appender name="FIRST_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>A:/dev/LogTesting/logs/first.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>A:/dev/LogTesting/logs/first.%d{yyyyMMdd}%d{_HHmmss,aux}.log.gz</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{MMM dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="SECOND_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>A:/dev/LogTesting/logs/second.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>A:/dev/LogTesting/logs/second.%d{yyyyMMdd}%d{_HHmmss,aux}.log.gz</fileNamePattern>
</rollingPolicy>
<encoder>
<Pattern>%d{MMM dd HH:mm:ss.SSS} %property{HOSTNAME} [%thread] %level %logger{36} %msg%n</Pattern>
</encoder>
</appender>
<!-- =============================================================== -->
<logger name="com.test.apples" additivity="false">
<level value="DEBUG" />
<appender-ref ref="FIRST_FILE" />
</logger>
<logger name="com.test.oranges" additivity="false">
<level value="DEBUG" />
<appender-ref ref="SECOND_FILE" />
</logger>
<!-- =============================================================== -->
<category name="com.test.apples" additivity="false">
<priority value="DEBUG"/>
<appender-ref ref="FIRST_FILE"/>
</category>
<category name="com.test.oranges" additivity="false">
<priority value="DEBUG"/>
<appender-ref ref="SECOND_FILE"/>
</category>
<!-- =============================================================== -->
<!-- default -->
<root level="WARN">
<appender-ref ref="FIRST_FILE" />
<appender-ref ref="SECOND_FILE" />
</root>
Xin lỗi, tôi quên đề cập đến tôi có tệp cấu hình xml. Tương đương với điều này trong xml là gì? log4j.logger.com.mycorp.project.first = DEBUG, FIRST – Csaba
Xem câu trả lời cập nhật của tôi. Có thể nó hữu ích cho bạn của bạn! –
Tôi có hai câu hỏi về vấn đề này: 1. Nếu sự khác biệt giữa các ứng dụng chỉ là tên tệp, có cách nào để xác định các thuộc tính chung một lần (XML) để tránh dự phòng không? 2. Có thể lập bản đồ một trình ghi nhật ký cho nhiều gói không? – clicky