0

I used the following tutorial to configure logging in my rails application http://blog.mmlac.com/log4r-for-rails/

log4r.yml

log4r_config:
  pre_config:
    custom_levels:
    - DEBUG
    - PARAMS
    - INFO
    - WARN
    - ERROR
    - EXCEPTION
    - FATAL
  # define all loggers ...
  loggers:
    - name          : rails
      level         : DEBUG
      trace         : 'false'
      outputters    :
      - console
      - railsfiledebug

    - name          : mysql
      level         : DEBUG
      trace         : 'false'
      outputters    :
      - console
      - railsfile


  # define all outputters (incl. formatters)
  outputters:
  - type: StdoutOutputter
    name: console
    formatter:
      date_pattern: '%H:%M:%S'
      pattern     : '%d %l: %m'
      type        : PatternFormatter

  - type: FileOutputter
    name: railsfile
    filename: "log/cryptoserver_#{ENV}.log" # notice the file extension is needed!
    trunc: false
    formatter:
      date_pattern: '%Y %m %d %H:%M:%S.%L %z'
      pattern     : '[#{EC2_INSTANCE}][%p][#{APPNAME}]|[RAILS][%d][%l]: %m '
      type        : PatternFormatter

In my application.rb:

Rails.logger = Log4r::Logger['rails']

How can I configure the logger to make two separate files:

1) debug.log where logged all messages with priority DEBUG and less.

2) app.log where presents the same messages as in debug.log except DEBUG and PARAMS

So

Rails.logger.info 'this should go in two log files'
Rails.logger.debug 'this should go in debug.log only'
PaintedRed
  • 1,398
  • 5
  • 19
  • 30

1 Answers1

1

I realized I can use two FileOutputters with different error levels

- type: FileOutputter
    name: railsfile
    level: INFO
    filename: "log/cryptoserver_#{ENV}.log" # notice the file extension is needed!
    trunc: false
    formatter:
      date_pattern: '%Y %m %d %H:%M:%S.%L %z'
      pattern     : '[#{EC2_INSTANCE}][%p][#{APPNAME}]|[RAILS][%d][%l]: %m '
      type        : PatternFormatter

  - type: FileOutputter
    name: railsfiledebug
    level: DEBUG
    filename: "log/debug_#{ENV}.log" # notice the file extension is needed!
    trunc: false
    formatter:
      date_pattern: '%Y %m %d %H:%M:%S.%L %z'
      pattern     : '[#{EC2_INSTANCE}][%p][#{APPNAME}]|[RAILS][%d][%l]: %m '
      type        : PatternFormatter
PaintedRed
  • 1,398
  • 5
  • 19
  • 30