Enable log rotation within the rails application. Rails make use of ActiveSupport::Logger class to write log information. It is used to output message and has associated levels. You can then give the Logger a level, and only messages at that level or higher will be printed. They are:
UNKNOWN | An unknown message that should always be logged. |
FATAL | An un-handleable error that results in a program crash. |
ERROR | A handleable error condition. |
WARN | A warning. |
INFO | Generic (useful) information about system operation. |
DEBUG | Low-level information for developers. |
CREATE YOUR CUSTOM LOGGER
# lib/custom_logger.rb class CustomLogger < Logger def format_message(severity, timestamp, progname, msg) "#{msg}\n" end end logfile = File.open(RAILS_ROOT + '/log/custom.log', 'a') #create log file logfile.sync = true #automatically flushes data to file CUSTOM_LOGGER = CustomLogger.new(logfile) #constant accessible anywhereIt creates a custom_logger.rb file. Here defines the format for log messages. The arguments are:
- Severity of the log message
- Time instance representing when the message was logged
- progname configured or passed to the logger method
- Object the user passed to the log message.
LOAD CUSTOMLOGGER FROM ENVIRONMENT
Then load that custom logger in development as:#in any controller, view or model like, CUSTOM_LOGGER.info("info from custom logger") CUSTOM_LOGGER.add(Logger::FATAL) { 'Fatal error!' } CUSTOM_LOGGER.fatal("Some arguments are not given.") CUSTOM_LOGGER.error ("Argument #{@name} mismatch." ) CUSTOM_LOGGER.debug("This is a " + potentially + " expensive operation")I hope this will help you to know about Custom Loggers.