ruby on rails의 test.log 및 development.log에서 어떻게 자동 정리를 설정할 수 있습니까?Ruby on Rails의 로그 순환/삭제
서버 시작 및 테스트 실행시 dev 및 test 로그를 자동으로 삭제하는 설정이 있습니까?
ruby on rails의 test.log 및 development.log에서 어떻게 자동 정리를 설정할 수 있습니까?Ruby on Rails의 로그 순환/삭제
서버 시작 및 테스트 실행시 dev 및 test 로그를 자동으로 삭제하는 설정이 있습니까?
여기에 당신을 도울하기를 - 그것은에 대한 기본 옵션이 있습니다 회전. 여기
내가 할 작업은 다음과 같습니다 포매터와environment.rb
에서
우리가 이것은 우리 자신의 로거를 생성
new_logger = Logger.new(File.join(RAILS_ROOT, "log", "new_logger_#{RAILS_ENV}.log"), 'daily')
new_logger.formatter = Logger::Formatter.new
우리 자신의 로거를 정의 ... 환경 당 하나, (그래서 당신은 타임 스탬프 등 수) , 그리고 매일 회전. 때로는 매우 유용 -
그런 다음 초기화 블록에 우리는 당신은 분명히 여기에 너무 힘을 볼 수 있습니다 active_record
과 action_controller
에 대해 서로 다른 로거가이 로거
Rails::Initializer.run do |config|
config.active_record.logger = new_logger
config.action_controller.logger = new_logger
#snip
end
를 사용하여 레일을 물어!
이 튜토리얼의 내용을 참조하십시오. Rotating Rails Log Files, 내 로그 파일을 신경 쓰지 않기 때문에 문제가 해결되는지 알 수 없습니다.
호프 내가 너를 돕고있어!
Unfortunetely logrotate는 Unix 계열 시스템에서만 사용 가능합니다. –
rake log:clear
은 log/*.log
과 일치하는 모든 파일을 0 바이트로 잘라 버리는 레이크 작업입니다. 서버 시작 및 테스트 작업에서 호출 할 수 있습니다. 모든 스크립트/서버가
는, 당신은 같은 것을 할 수정할 수 있는지 메신저 루비 스크립트입니다 다음 ruby logger 손에
#!/usr/bin/env ruby
require 'fileutils'
FileUtils.rm File.join(File.dirname(__FILE__), log, *.log)
require File.dirname(__FILE__) + '/../config/boot'
require 'commands/server'
실제 환경에서는 SyslogLogger (http://rails-analyzer.rubyforge.org/tools/files/lib/analyzer_tools/syslog_logger_rb.html)가 필요합니다. syslogd (creansup)에 배포 설정으로 파일을 순환시킬 수 있습니다.
실험 후, 레일즈 이니셜 라이저가 표준 루비 File
클래스를 사용하여 파일을자를 수있는 올바른 지점에로드된다는 것을 발견했습니다.
if MyRailsApp::Application.config.truncate_logs_on_server_start
# Making an assumption here that we're logging to a file...
File.open("log/#{ENV["RAILS_ENV"]}.log", "w") do |log_file|
log_file.puts("Initializer truncate_logs_on_server_start reset the log file")
log_file.puts
end
end
당신은 단지 다음 application.rb과 다양한 환경에서 MyRailsApp::Application.config.truncate_logs_on_server_start
을 설정해야합니다 내가 설정/초기화/truncate_logs_on_server_start.rb이 있습니다.
"정리"란 정확히 무엇을 의미합니까? – cakeforcerberus