Logging configuration
The Play logger is built on Log4j. Since most Java libraries use Log4j or a wrapper able to use Log4j as a backend, you can easily configure logging that is well-suited to your application.
Logging from your application
Play provides a default logger with the class play.Logger
. This class uses Log4j to write messages and exceptions to a logger named play
.
Logging from your application is easy:
Logger.info("A log message");
Logger.error(ex, "Oops");
The play.Logger
class’ methods support easy formatting through the standard Java formatter syntax:
Logger.debug("The param was %s", param);
Logger.info("I want to log %s and %s and %s", a, b, c);
You can still use Log4j directly to create alternative loggers for specific needs:
org.apache.log4j.Logger.getLogger("another.logger");
Configure log levels
You can set the Play logger’s log level by configuring application.log. You can change this value without restarting the server. Note that this level only applies to messages generated by the application.
If you need to fully configure Log4j, create a log4j.properties
file in the conf/
directory. Since this directory is the first element of the classpath, this file will be the default used by all libraries.
The default Log4j configuration is the following:
log4j.rootLogger=ERROR, Console
log4j.logger.play=INFO
# Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m%n
Copy this file and update it for your specifics needs!
Production configuration
See: configure logging for production for another example.
Continuing the discussion
Next, we continue configuration with Configuration in several environments.