Giter VIP home page Giter VIP logo

play-logback-access's Introduction

Logback-access plugin for Play 2

This plugin allows you to use Logback's very flexible access framework within Play.

Installation

Add the following dependency for Play 2.4.x:

libraryDependencies += "org.databrary" %% "play-logback-access" % "0.4"

Play 2.3.x

For Play 2.3.x on Scala 2.11, use version 0.3:

libraryDependencies += "org.databrary" %% "play-logback-access" % "0.3"

Usage info

Play 2.2.x

For Play 2.2.x on Scala 2.10, use version 0.1:

libraryDependencies += "org.databrary" %% "play-logback-access" % "0.1"

Configuration

Add a configuration file to your conf/application.conf with something like:

logbackaccess.config.resource=logback-access.xml

Then in conf/logback-access.xml:

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%t %D %s %h %b %A "%r" "%i{Referer}" "%i{User-Agent}"</pattern>
    </encoder>
  </appender>
  <appender-ref ref="STDOUT" />
</configuration>

(You can alternatively use logbackaccess.config.file or logbackaccess.config.url.)

You can read more about the supported patterns. Note that patterns requiring access to the full request body or response body (including content-length) do not currently provide useful data.

There is also a logbackaccess.context setting if you want it to use an execution context other than the default one.

Usage

The library will automatically initialize itself as a Play Module.

Inject PlayLogbackAccessApi into any class to gain access to the API. This exposes:

  • filter - Play Filter to log requests automatically
  • log(requestTime: Long, request: RequestHeader, result: Result, user: Option[String]) - Manually log to the Access logger

Example: Filter

In file: app/Filters.scala

import javax.inject.Inject
import org.databrary.PlayLogbackAccessApi
import play.api.http.HttpFilters

class Filters @Inject() (accessLogger: PlayLogbackAccessApi) extends HttpFilters {
  val filters = Seq(accessLogger.filter)
}

Then, in file: conf/application.conf

play.http.filters=Filters

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.