2017-10-25 28 views
5

Tôi đã kế thừa một ứng dụng Rails có kích thước trung bình với nhiều phương pháp ghi nhật ký khác nhau trải rộng trên cơ sở mã. Đó là một chút của một mớ hỗn độn và tôi bị mất lý do tại sao một số bản ghi được xuất ra và tại sao một số không.đường ray nhật ký gỡ lỗi đường ray

Có cách nào để người ghi nhật ký tự "thông báo"/đăng nhập một số thông tin trạng thái khi được tạo không? Trong một cách tương tự như những gì logback does khi bạn thiết debug="true"

SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/Users/aleksander.sumowski/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/Users/aleksander.sumowski/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
11:28:33,076 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 
11:28:33,076 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy] 
11:28:33,076 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/Users/aleksander.sumowski/projects/insurance/car-insurance-aggregator/resources/logback.xml] 
11:28:33,168 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Will scan for changes in [file:/Users/aleksander.sumowski/projects/insurance/car-insurance-aggregator/resources/logback.xml] 
11:28:33,168 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Setting ReconfigureOnChangeTask scanning period to 1 seconds 
11:28:33,172 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender] 
11:28:33,175 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT] 
11:28:33,179 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 
11:28:33,214 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender] 
11:28:33,218 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [FILE] 
11:28:33,225 |-INFO in [email protected] - Will use gz compression 
11:28:33,228 |-INFO in [email protected] - Will use the pattern log/archive/car-insurance-aggregator.%d{yyyy-MM-dd}.log for the active file 
11:28:33,231 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - The date pattern is 'yyyy-MM-dd' from file name pattern 'log/archive/car-insurance-aggregator.%d{yyyy-MM-dd}.log.gz'. 
11:28:33,231 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Roll-over at midnight. 
11:28:33,234 |-INFO in c.q.l.core.rolling.DefaultTimeBasedFileNamingAndTriggeringPolicy - Setting initial period to Wed Nov 22 11:28:33 UTC 2017 
11:28:33,235 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 
11:28:33,236 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Active log file name: log/car-insurance-aggregator.log 
11:28:33,236 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - File property is set to [log/car-insurance-aggregator.log] 
11:28:33,238 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [business_events] to INFO 
11:28:33,238 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [FILE] to Logger[business_events] 
11:28:33,238 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO 
11:28:33,238 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT] 
11:28:33,238 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration. 
11:28:33,239 |-INFO in [email protected] - Registering current configuration as safe fallback point 
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder] 
2017-11-22 11:28:34,266 [main] INFO org.eclipse.jetty.util.log - Logging initialized @3093ms 
+0

Có lẽ bạn đang tìm kiếm cấp độ nhật ký? http://guides.rubyonrails.org/debugging_rails_applications.html#log-levels – HarlemSquirrel

+0

Tôi là familliar với khái niệm về mức nhật ký và đó không phải là những gì tôi đang tìm kiếm – sumek

+0

Bạn có thể chia sẻ nhật ký nào trong ứng dụng không? – HarlemSquirrel

Trả lời

1

Vâng, đây là vẻ đẹp và nỗi đau của ruby. Tôi sẽ bắt đầu bằng cách ghi đè phương pháp Rails.logger= trong config/application.rb với một số (như bạn nói) "thông báo".

Chỉ cần thêm vào config/application.rb một cái gì đó như thế và xem các bản ghi:

Rails.singleton_class.send('alias_method', :old_logger=, :logger=) 
module Rails 
    def self.logger=(value) 
    puts "Hey logger '#{value.inspect}' starting!" 
    self.old_logger = value 
    end 
end 

Hoặc những gì về chỉ điều tra có giá trị của Rails.logger?

+0

Thats khá gần với những gì tôi cần! Hai câu hỏi tiếp theo nữa: có cách nào để biết ai được giao ở đâu không? Tôi đã nghĩ đến việc in ngăn xếp cuộc gọi bằng cách nào đó. Và bit thứ hai: Tôi nghĩ rằng một số đăng nhập được thực hiện bởi Rack, không phải Rails. Phương pháp tương tự có hoạt động với Rack không? – sumek

0

Không biết nếu nó này, bạn đang tìm kiếm, nhưng Rails có 5 cấp độ khác nhau log (http://guides.rubyonrails.org/debugging_rails_applications.html):

2.2 Log Levels 

Khi một cái gì đó được ghi lại, nó được in vào nhật ký tương ứng nếu mức nhật ký của thông báo bằng hoặc cao hơn mức nhật ký được cấu hình. Nếu bạn muốn biết mức nhật ký hiện tại, bạn có thể gọi phương thức Rails.logger.level.

Các cấp nhật ký có sẵn là:: gỡ lỗi,: thông tin,: cảnh báo,: lỗi,: gây tử vong và: không xác định, tương ứng với số cấp nhật ký từ 0 đến 5, tương ứng. Để thay đổi mức độ đăng nhập mặc định, sử dụng

config.log_level =: cảnh báo

+0

Không, đó không phải những gì tôi đang tìm kiếm ... Ứng dụng có nhiều nhật ký được xác định ở những nơi khác nhau. Ngoài ra rack hiện một số khai thác gỗ của riêng mình. Tôi muốn có khả năng hiển thị các logger đó. – sumek

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