2011-12-22 23 views
9

Tôi tự hỏi làm thế nào để có được org.slf4j.Logger cho System.out. Tôi biết điều này là không tốt, nhưng tôi cần nó cho mục đích thử nghiệm.Cách tạo Logger cho System.out

Cảm ơn bạn rất nhiều.

+0

Xem thêm http://stackoverflow.com/a/5903253/127971 => sử dụng slf4j + logback và hai tệp cấu hình đăng nhập khác nhau; một cho thử nghiệm, một cho chính – michael

Trả lời

3

Điều này có thể hữu ích: sysout-over-slf4j

+1

Điều này trả lời câu hỏi sai. OP hỏi làm thế nào để viết tin nhắn slf4j để System.out. sysout-over-slf4j gửi các thông điệp được viết tới System.out tới khung công tác slf4j. Đây là 2 thứ khác nhau. Câu trả lời đúng là bởi Jean-Philippe Briend –

4

SLF4J là mặt tiền ghi nhật ký. Bạn cần triển khai ghi nhật ký.

Ngày nay, Logback là khung đăng nhập được đề xuất.

Để đăng nhập vào System.out, bạn phải sử dụng ConsoleAppender trong tệp cấu hình Logback.

Ví dụ:

<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> 
    <target>System.out</target> 
    <encoder> 
    <pattern>%-40.40c [%5.5thread] %-5p %X - %m%n</pattern> 
    </encoder> 
</appender> 
+2

Tôi nghĩ rằng logback (hoặc log4j) là quá mức cần thiết cho mục đích này. slf4j-đơn giản là dành cho trường hợp sử dụng này. –

+0

Cảm ơn bạn đã dành thời gian. –

10

Có thể sử dụng slf4j-đơn giản và làm cho nó viết thư cho đầu ra tiêu chuẩn bằng cách thiết lập thuộc tính hệ thống khi chương trình bắt đầu:

System.setProperty("org.slf4j.simpleLogger.logFile", "System.out"); 

Thông tin chi tiết tại http://www.slf4j.org/api/org/slf4j/impl/SimpleLogger.html

3

Đặt simplelogger.properties trong classpath của bạn và đặt dòng này trong nó:

org.slf4j.simpleLogger.logFile=System.out 

Điều này sẽ gây ra SLF4J Simple Logger để đăng nhập vào đầu ra tiêu chuẩn thay vì lỗi chuẩn.