복붙노트

[RUBY-ON-RAILS] 로거 형식 문자열 구성을 레일

RUBY-ON-RAILS

로거 형식 문자열 구성을 레일

어떻게 다른 형식으로 출력 로그 문자열에 레일 로거를 구성 할 수 있습니다? 내가 좋아하는 더 많은 정보 뭔가를 좀하고 싶습니다 :

[로그 레벨] [시간] [메시지]

디버그 : 2008년 1월 20일 13 : 11 : 03.00 : 메소드 호출

내가 꼬리에만 디버그와 같은 특정 로그 수준에서 오는 메시지를 내 development.log 파일을하고자 할 때 정말 날 도움이 될 것이다.

해결법

  1. ==============================

    1.뒷조사를했고, RubyOnRails 토크 구글 그룹에서 해당 게시물을 발견했다.

    뒷조사를했고, RubyOnRails 토크 구글 그룹에서 해당 게시물을 발견했다.

    나는 그것을 조금 수정 내 environment.rb에의 마지막에 넣어 그래서 :

    module ActiveSupport
      class BufferedLogger
        def add(severity, message = nil, progname = nil, &block)
          return if @level > severity
          message = (message || (block && block.call) || progname).to_s
    
          level = {
            0 => "DEBUG",
            1 => "INFO",
            2 => "WARN",
            3 => "ERROR",
            4 => "FATAL"
          }[severity] || "U"
    
          message = "[%s: %s #%d] %s" % [level,
                                         Time.now.strftime("%m%d %H:%M:%S"),
                                         $$,
                                         message]
    
          message = "#{message}\n" unless message[-1] == ?\n
          buffer << message
          auto_flush
          message
        end
      end
    end
    

    이런 형식 문자열이 결과 :

    [DEBUG : 10시 35분 26초 0121 # 57078] 렌더링 된 레이아웃 / _header (0.00089)

  2. ==============================

    2.레일 4 개 앱의 경우 내가 함께뿐만 아니라 타임 스탬프와 같은 기본적인 태그에 대한 지원을 추가하고 수준을 기록하지만, 심지어 로그 메시지 자체에 색상을 추가하는 간단한 보석을 넣어했습니다.

    레일 4 개 앱의 경우 내가 함께뿐만 아니라 타임 스탬프와 같은 기본적인 태그에 대한 지원을 추가하고 수준을 기록하지만, 심지어 로그 메시지 자체에 색상을 추가하는 간단한 보석을 넣어했습니다.

    https://github.com/phallguy/shog

  3. ==============================

    3.태그 문제는 그들이 읽을 수있는 지점으로 로그를 혼란이다.

    태그 문제는 그들이 읽을 수있는 지점으로 로그를 혼란이다.

    나는 목재 같은 것을 권 해드립니다. 자동으로 가독성을 희생하지 않고 컨텍스트 (레벨, 시간, 세션 ID 등)와 로그를 확장합니다.

  4. ==============================

    4.

    # config/initializers/rack_logger.rb
    module Rails
      module Rack
        class Logger < ActiveSupport::LogSubscriber
          # Add UserAgent
          def started_request_message(request)
             'Started %s "%s" for %s at %s by %s' % [
              request.request_method,
              request.filtered_path,
              request.ip,
              Time.now.to_default_s,
              request.env['HTTP_USER_AGENT'] ]
          end
        end
      end
    end
    

    소스 링크

  5. from https://stackoverflow.com/questions/462651/rails-logger-format-string-configuration by cc-by-sa and MIT license