# Logger::ShiftingError

**URL:** <https://www.ruby-forum.com/t/logger-shiftingerror/172501>\
**Category:** Rails\
**Created:** [July 22, 2009, 1:49pm UTC](https://www.ruby-forum.com/t/logger-shiftingerror/172501 "2009-07-22T13:49:14Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![wfspoet](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/e480ec/32.png) [@wfspoet](https://www.ruby-forum.com/u/wfspoet)\
**Post date:** [July 22, 2009, 1:49pm UTC](https://www.ruby-forum.com/t/logger-shiftingerror/172501/1 "2009-07-22T13:49:14Z")

</div>

#---------------lib/app\_logger.rb------------  
require ‘logger’  
class AppLogger  
attr\_writer :man\_name, :emp\_name

def initialize(man\_name, emp\_name)  
@man\_name = man\_name  
@emp\_name = emp\_name

```
log_path = "log/"
file_name = "file.log"
log_level = "ACTIVITY"

```

log\_file = log\_path + file\_name  
@logger = Logger.new(log\_file, ‘daily’)

```
case log_level
when "DEBUG"
  @level = Logger::DEBUG
when "INFO"
  @level = Logger::INFO
when "WARN"
  @level = Logger::WARN
when "ERROR"
  @level = Logger::ERROR
when "FATAL"
  @level = Logger::FATAL
else
  @level = Logger::UNKNOWN
end

```

end

def close  
@logger.close if @logger  
end

def debug(msg)  
log\_message(Logger::DEBUG, msg)  
end

def info(msg)  
log\_message(Logger::INFO, msg)  
end

def warn(msg)  
log\_message(Logger::WARN, msg)  
end

def error(msg)  
log\_message(Logger::ERROR, msg)  
end

def fatal(msg)  
log\_message(Logger::FATAL, msg)  
end

def activity(msg)  
log\_message(Logger::UNKNOWN, msg)  
end

private  
SEV\_LABEL = %w(DEBUG INFO WARN ERROR FATAL UNKNOWN)  
def log\_message(severity, msg)  
if @logger.nil? or severity \< @level  
return true  
end  
fmt\_msg = “#{@man\_name} | #{@emp\_name} | #{Time.now.strftime(”%Y-  
%m-%d %H:%M:%S")} | #{SEV\_LABEL[severity]} | #{msg}\r\n"  
@logger \<\< fmt\_msg  
end  
end  
#-----------------------------------------------------------

Above logger Code is present in lib folder, named logger.rb

i have included —before\_filter :init\_logger-- this piece of code in  
all controllers

in application.rb

def init\_logger  
unless $app\_logger  
man\_name = “mPowerForce”  
emp\_name = “mPowerSales”  
$app\_logger = AppLogger.new(man\_name, emp\_name)  
end  
end

rails version —\>2.1.1

am running my rails application as three instances in three consequent  
ports  
on the first day no problem in creating file.log and next day when  
application is running in 1st instance its creating a backup of  
file.log as file\_previous\_date.log when its running in the 2nd  
instance on the same day

The following error occurred  
Logger::ShiftingError in controller  
Shifting failed. closed stream

Could any one give a solution for this problem

Thanx in advance
