[RUBY-ON-RAILS] 어떻게 레일 3.0.x 버전으로 Log4r를 구성?
RUBY-ON-RAILS어떻게 레일 3.0.x 버전으로 Log4r를 구성?
이 기사에 따라 레일 3.0.4로 구성 log4r을 시도 : http://www.dansketcher.com/2007/06/16/integrating-log4r-and-ruby-on-rails/
/Users/toto/.rvm/gems/ruby-1.9.2-p0/gems/log4r-1.1.9/lib/log4r/yamlconfigurator.rb:166:in `sub!': can't convert Pathname into String (TypeError)
from /Users/toto/.rvm/gems/ruby-1.9.2-p0/gems/log4r-1.1.9/lib/log4r/yamlconfigurator.rb:166:in `block in paramsub'
from /Users/toto/.rvm/gems/ruby-1.9.2-p0/gems/log4r-1.1.9/lib/log4r/yamlconfigurator.rb:165:in `each'
from /Users/toto/.rvm/gems/ruby-1.9.2-p0/gems/log4r-1.1.9/lib/log4r/yamlconfigurator.rb:165:in `paramsub'
from /Users/toto/.rvm/gems/ruby-1.9.2-p0/gems/log4r-1.1.9/lib/log4r/yamlconfigurator.rb:156:in `block in decode_hash_params'
나는 레일 3 통합 봤하지만, 작업 솔루션을 발견하지 않았습니다. 런타임에 작동 코드 A를 YAML 파일을 사용하여 로그 구성을 허용 조각 및 초기화에 누군가 포인트 나를 수 있습니까?
그냥 참고로, 나는 / 초기화가 폴더 설정 및 config 디렉토리에있는 log4r.yml에서 샘플 logger.rb를 배치했다.
감사
해결법
-
==============================
1.헤헤 ... Log4r의 생각은 내 자바 프로그래밍 인생에서 내가 가장 좋아하는 로거 유명한 "Log4j의"에서 비롯됩니다. 그러나 log4r의 문서는 정말 가난이며, 초보자 정말 어렵다. 내 솔루션을 보여 드리죠 :
헤헤 ... Log4r의 생각은 내 자바 프로그래밍 인생에서 내가 가장 좋아하는 로거 유명한 "Log4j의"에서 비롯됩니다. 그러나 log4r의 문서는 정말 가난이며, 초보자 정말 어렵다. 내 솔루션을 보여 드리죠 :
1 단계. log4r 설정 파일을 만듭니다 (파일 이름 : 설정 / log4r.yml)
log4r_config: # define all loggers ... loggers: - name : production level : WARN trace : 'false' outputters : - datefile - name : development level : DEBUG trace : 'true' outputters : - datefile # define all outputters (incl. formatters) outputters: - type: DateFileOutputter name: datefile dirname: "log" # notice the file extension is needed! # if you want the file is named by the process, just comment it, # then it will automatically get the same name with its process, # e.g. rails_2017-05-03.log filename: "my_app.log" formatter: date_pattern: '%H:%M:%S' pattern : '%d %l: %m ' type : PatternFormatter
2 단계. 수정 설정 / application.rb
require 'rails/all' # add these line for log4r require 'log4r' require 'log4r/yamlconfigurator' require 'log4r/outputter/datefileoutputter' include Log4r Bundler.require(:default, Rails.env) if defined?(Bundler) module Zurich class Application < Rails::Application #... # assign log4r's logger as rails' logger. log4r_config= YAML.load_file(File.join(File.dirname(__FILE__),"log4r.yml")) YamlConfigurator.decode_yaml( log4r_config['log4r_config'] ) config.logger = Log4r::Logger[Rails.env] end end
STEP3. 당신의 Gemfile에이 줄을 추가합니다.
# which is the latest version and support "datefileoutputter" gem 'log4r', '1.1.9'
당신은 4 + 레일을 사용하는 경우 (여전히 STEP4가이 파일을 추가하려면 설정 / 초기화 폴더
# config/initializers/log4r_patch_for_rails4.rb class Log4r::Logger def formatter() end end
)
끝났다. 이제 레일 응용 프로그램 폴더에 "CD는"log4r를 설치하려면 "번들"를 실행 한 후 "레일의" 이 같은 폴더를 "로그 /"에서 로그 파일을 찾을 수 있습니다 :
May 9 17:05 rails_2011-05-09.log May 10 13:42 rails_2011-05-10.log
및 로그 내용은 (내가 가장 좋아하는 형식)입니다 :
$ tail log/rails_2011-05-10.log Started GET "/????_settings/19/edit" for 127.0.0.1 at ... 13:42:11 INFO: Processing by ????SettingsController ... 13:42:11 INFO: Parameters: {"id"=>"19"} 13:42:12 DEBUG: ????Setting Load (0.0ms) SELECT "d ... 13:42:12 INFO: Completed 200 OK in 750ms
내 환경 :
모든 질문은 ~ 알려 주시기 바랍니다 :-)
https://stackoverflow.com/a/20154414/445908 : 참조
-
==============================
2.(환경 dependend 로그 파일에 기록) 행동 나는 다음 log4r.yml를 사용 로깅 모방 레일 :
(환경 dependend 로그 파일에 기록) 행동 나는 다음 log4r.yml를 사용 로깅 모방 레일 :
log4r_config: # define all loggers ... loggers: - name : production level : WARN trace : 'false' outputters : - datefile_production - name : development level : DEBUG trace : 'true' outputters : - datefile_development - name : test level : DEBUG trace : 'true' outputters : - datefile_test # define all outputters (incl. formatters) outputters: - type: DateFileOutputter name: datefile_production dirname: "log" filename: "production.log" formatter: date_pattern: '%H:%M:%S' pattern : '%d %l: %m ' type : PatternFormatter - type: DateFileOutputter name: datefile_development dirname: "log" filename: "development.log" formatter: date_pattern: '%H:%M:%S' pattern : '%d %l: %m ' type : PatternFormatter - type: DateFileOutputter name: datefile_test dirname: "log" filename: "test.log" formatter: date_pattern: '%H:%M:%S' pattern : '%d %l: %m ' type : PatternFormatter
-
==============================
3.나는 그것이 표준 레일 로거를 대체하는 방식으로 log4r을 설정하는 방법에 대한 자세한 블로그 게시물을 썼다. 또한 나뿐만 아니라 Mongoid, 액티브 및 예외 (스택 트레이스를 incluing) Log4r을 사용하여 로그온하는 방법 등 여러 로거, 사용 로그 수준을 사용하는 방법에 대한 세부 사항으로 갔다.
나는 그것이 표준 레일 로거를 대체하는 방식으로 log4r을 설정하는 방법에 대한 자세한 블로그 게시물을 썼다. 또한 나뿐만 아니라 Mongoid, 액티브 및 예외 (스택 트레이스를 incluing) Log4r을 사용하여 로그온하는 방법 등 여러 로거, 사용 로그 수준을 사용하는 방법에 대한 세부 사항으로 갔다.
Log4r에 관심이있는 사람들이이 보석을 확인 할 수 있습니다, 그래서 "로깅"라는 또 다른 분명히 더 성숙 보석은, 기사에 해당하는 HackerNews 스레드에 대한 의견에 제안했다.
from https://stackoverflow.com/questions/5664136/how-to-configure-log4r-with-rails-3-0-x by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 원격 => 사실이 호출되지 JS 방법 : form_for 레일 (0) | 2020.02.26 |
---|---|
[RUBY-ON-RAILS] 뚱뚱한 모델 대 스키니 컨트롤러, 또는 내 컨트롤러 식욕 부진을해야 : 레일? (0) | 2020.02.25 |
[RUBY-ON-RAILS] 왜 우리는 레일에 @@ 클래스 변수를 사용하지 않도록해야합니까? (0) | 2020.02.25 |
[RUBY-ON-RAILS] 주 / 월 / 등 및 액티브에 의해 그룹화? (0) | 2020.02.25 |
[RUBY-ON-RAILS] 설치 "와 같은 파일을로드 할 수 없습니다 - mkmf을"우분투에 실패 난간 (0) | 2020.02.25 |