Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I configure the location and rotation of the Dropwizard access log?

My logging config looks like this:

logging:
  level: INFO

  loggers:
    "com.example.broker": DEBUG
    "org.apache.http.wire": DEBUG

  console:
    threshold: ERROR

  file:
    enabled: true
    currentLogFilename: /opt/broker/log/broker.log
    archivedLogFilenamePattern: /opt/broker/log/broker.%d.log.gz
    archivedFileCount: 14

This is awesome, I get all my logs in the given files with proper rotation and cleanup.

Except for the access log which still goes to stdout and thus ends up (in my case) in /var/log/upstart/broker.log which is accessible by root only. I'd like to make use of the same or a similar logging config to redirect those logs to /opt/broker/log/access.log.

Is this possible and if so, how?

like image 316
mss Avatar asked Oct 04 '13 11:10

mss


People also ask

What is configuration class in Dropwizard?

Creating A Configuration Class Each Dropwizard application has its own subclass of the Configuration class which specifies environment-specific parameters. These parameters are specified in a YAML configuration file which is deserialized to an instance of your application's configuration class and validated.

What does rotating a log file mean?

In information technology, log rotation is an automated process used in system administration in which log files are compressed, moved (archived), renamed or deleted once they are too old or too big (there can be other metrics that can apply here).

What is Environment in Dropwizard?

A Dropwizard Environment consists of all the Resources, servlets, filters, Health Checks, Health, Jersey providers, Managed Objects, Tasks, and Jersey properties which your application provides. Each Application subclass implements a run method.


1 Answers

Since the move from codahale to dropwizard.io, the location of the relevant section of the manual is now: http://www.dropwizard.io/0.9.2/docs/manual/configuration.html#request-log

Note that the request log is now set under server rather than http - making the relevant YAML configuration:

server:
  requestLog:
    timeZone: UTC
    appenders:
      - type: file
        currentLogFilename: /opt/broker/log/access.log
        threshold: ALL
        archive: true
        archivedLogFilenamePattern: /opt/broker/log/access.%d.log.gz
        archivedFileCount: 14
like image 157
Robin Bramley Avatar answered Sep 28 '22 07:09

Robin Bramley