2012-05-29 1 views
7

데비안 서버에서 몇 개의 레일즈 3.0 사이트를 실행 중입니다. 현재 모든 로그 (각 사이트에 대한 RAILS_ROOT) RAILS_ROOT/로그/production.log로 이동Rails 3.0에서 rsyslogd 사용

나는 모든 로깅을 위해 rsyslog을 거친 다음에 배치되도록,이를 변경하려면 : 또한

/var/log/rails/site1.log 
/var/log/rails/site2.log 
etc. 

그리고 이 로그를 매일 자동으로 회전하도록합니다.

어떻게 처리하나요? 나는이

syslog-logger 보석을 사용한 과거

/카슨

답변

14

당신은 이니셜이를 설정할 수 있습니다 : 최근 루비 버전의

config.logger = Logger::Syslog.new("site1", Syslog::LOG_LOCAL5) 

는 또한 syslog/logger있다 표준 라이브러리 - 사용법은 거의 동일합니다.

기본 텍스트 파일 대신 syslog에 로깅을 시작합니다. 다음에 무슨 일이 시스 로그 구성 일 - 당신은 당신의 데이터가 이동 위치를 정의 위해 rsyslog 규칙을 만들 필요가

가장 간단한 일이 될 것이다 뭔가 프로그램 이름 "사이트 1"로 모든 것을 지시

!site1 /var/log/site1.log 

같은 (Logger :: Syslog의 첫 번째 인수).

더 많은 작업을 수행 할 수 있습니다. 예를 들어 로그 메시지를 중앙 로깅 서버로 전달하여 모든 로그 파일을 하나의 파일로 통합하여 각 앱 인스턴스에 대해 하나의 로그 파일이 보이지 않도록 할 수 있습니다 .

로그 회전의 경우 logrotate를 사용합니다. rsyslog가 내부적으로 그런 종류의 물건을 실제로 처리 할 수는 있지만 자세한 내용은 알 수 없습니다.

+0

미안하지만 나는 아직 이것에 대해 언급하지 않았다. 나는 다음 주에 이것을 시험 할 것이다 - 고마워! –

+0

Syslog :: LOG_LOCAL5 - 여기에 오타가없는가요? –

+0

결산이 누락되었습니다.) 그것 이외의 프로덕션 애플 리케이션의 설정 파일에서 바로 왔어. –