Home > Guides > Core Developers Guide > Logging |

Apache Struts 2 Documentation
Logging
Edit Page Browse Space Add Page Add News

### Logging support

XWork provides its own layer to support logging - it allows to use many different implementations.

Currently XWork provides support for the following libraries (in that order base on classpath discovery):

- Commons Logging
- SLF4J
- JDK Logger

#### Usage

To use given type of library add it as a Maven dependency or drop into WEB-INF/lib folder. XWork LoggerFactory class will use given logging provider if available.

To add logging to your application simply declare a Logger as follow:

#### Implementing my own factory

You plug in your own logging solution, simple extend LoggerFactory class and provide a delegate which implements Logger interface, like below:

JdkLoggerFactory which adds support for JDK logging
JdkLogger is a wrapper around java.util.logging.Logger and implements Logger interface

Check the source code to see more details.

#### Defining which factory to use

Now you must tell XWork/Struts2 to use your implementation, just define system property like below:

`-Dxwork.loggerFactory=com.demo.MyLoggerFactory`

you can use the same to explicit tell the framework which implementation to use and don't depend on class discovery, eg.:

`-Dxwork.loggerFactory=com.opensymphony.xwork2.util.logging.slf4j.Slf4jLoggerFactory`

will enable Slf4j even if there is commons-logging on classpath available (commons-logging is the first LoggerFactory to look for).