Classpath Setup
In order to run the examples provided in the documentation, you need to add the following jars to your class path:
- logback-core-${project.version}.jar
- logback-classic-${project.version}.jar
- logback-examples-${project.version}.jar
- slf4j-api-${slf4j.version}.jar
The logback-*.jar files are part of the logback distribution whereas slf4j-api-${slf4j.version}.jar ships with SLF4J, a separate project.
Running from the command line
Assuming your current directory is $LOGBACK_HOME/logback-examples, where $LOGBACK_HOME stands for the directory where you installed logback, you can launch the first sample application, chapters.introduction.HelloWord1 with the following command:
java -cp lib/slf4j-api-${slf4j.version}.jar;../logback-core-${project.version}.jar;\ ../logback-classic-${project.version}.jar;logback-examples-${project.version}.jar\ chapters.introduction.HelloWorld1
It is more convenient to set the CLASSPATH environment variable once and for all before running the examples.
The setClasspath.cmd script located in the $LOGBACK_HOME/logback-examples folder will configure the class path for the MS Windows platform. For Unix, you can use setClasspath.sh.
Please edit the script in order to adapt the LB_HOME variable to match your local environment.
Please be aware that many examples will launch Java classes along with configuration files. To access these files by using the same commands as written in the documentation, you will need to issue the commands from within the $LOGBACK_HOME/logback-examples directory.
SMTPAppender
requires
JavaMail API
SMTPAppender
related examples require the JavaMail
API version 1.4 or later. Once you download
JavaMail, you need to place mail.jar on your class
path.
Here is the corresponding Maven dependency declaration for your convenience.
<!-- The javax.activation:activation:1.1 dependency will be --> <!-- automatically pulled in by Maven's transitivity rules --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>${javax.mail.version}</version> </dependency>
GEventEvaluator
and
logback.groovy configuration files require the Groovy
runtime
GEventEvaluator
depends on the Groovy runtime. It
was tested with Groovy version ${groovy.version}. Similarly, as the
name indicates groovy
configuration files require the groovy runtime to be present on
your class path.
Here is the corresponding Maven dependency declaration for your convenience.
<dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>${groovy.version}</version> </dependency>
Conditional processing and
JaninoEventEvaluator
require the Janino library
Conditional
processing in configuration files requires the Janino
library. Moreover, the evaluator examples based on
JaninoEventEvaluator
require Janino as well. Once you
download Janino, simply place commons-compiler.jar and
janino.jar on your application's class path.
Don't forget As of Janino version 2.6.0, in addition to janino.jar, commons-compiler.jar needs to be on the class path as well.
Here is the corresponding Maven dependency declaration for your convenience.
<!-- The org.codehaus.janino:commons-compiler:${janino.version} dependency --> <!-- will be automatically pulled in by Maven's transitivity rules --> <dependency> <groupId>org.codehaus.janino</groupId> <artifactId>janino</artifactId> <version>${janino.version}</version> </dependency>
Building with an IDE
If you wish to contribute to the project or just hack for fun, you will probably want to import logback as a project into your favorite IDE. Logback uses Maven as its build tool. The Scala language is used in certain logback test cases. Moreover, logback offers a Groovy-based configurator so there is a dependency on the Groovy language as well. It follows that your IDE should have plugins for Maven, Scala and Groovy in order to build logback from your within IDE. The Scala+Groovy dependecy just mentioned are build-time dependencies. The only mandatory logback dependency at runrime is the JRE, unless of course you wish to use the Groovy configurator in which case Groovy runtime will be a required dependency as well. Also note that building from the command line is fairly trivial, the command 'mvn install' given from $LOGBACK_HOME folder should suffice.
If you can't be bothered with installing the Scala plugin for your IDE, just remove the ".scala" files from the source tree as they are not strictly necessary for building logback.
If you can't be bothered with installing the Scala plugin for
your IDE, just remove the ".scala" files from the source tree as
they are not strictly necessary for building logback.. There are
about 5 or 6 such files. You will also need to modify the
PackageTest
file in the "ch.qos.logback.core.rolling"
packages to remove references to these test files written in
Scala. These class references all end in "STest.class".
ask for help Notwithstanding the instructions below, if you have trouble building logback from the sources, just ask for help on the logback-dev mailing list.
Building logback with IntelliJ IDEA
Assuming you have the latest version of IntelliJ IDEA installed, the only required additional plugin is the Scala plugin. IntelliJ IDEA supports Maven as well as Groovy out of the box. Once you have the Scala plugin installed, you can import logback into IDEA. Select File→ New Project → Import from external model→ Maven, then select $LOGBACK_HOME as the Root directory. The import should finish successfully in a few seconds. If you import logback before the scala-plugin is installed, you would need to re-import logback as a project after the Scala plugin is installed.
Building with Eclipse
Building logback under Eclipse is a little trickier. Here are instructions for building logback under Eclipse in 61 easy steps.
The author does not wish to unduly disparage
m2eclipse
. However, as of this writing, that is
October 2011, it appears that the key to building logback under
Eclipse is to avoid using m2eclipse
. If you have
m2eclipse
installed, you can disable it by removing
the Maven Nature for a given project. In later versions of Eclipse,
m2eclipse is installed bu default. As of logback version 1.0.7, the
pom.xml file for logback-core now deactivates m2eclipse as
explained in M2E
plugin wiki.
And without further ado here are the steps:
- Install Eclipse Indigo, aka Eclipse 3.7
- in eclipse.ini file modify the parameter "mx", i.e. change -Xmx384m to -Xmx1384m
- In Eclipse, select Help → Intall new Software → Work with http://dist.springsource.org/release/GRECLIPSE/e3.7/ and then Select "Groovy-Eclipse Feature". Installation of other plugins in particular "m2e Configurator for Groovy-Eclipse" is not necessary
- Similar to the previous step, install Scala IDE for Eclipse plugin as explained on the Scala IDE web-site. Installation of "JDT Weaving" or "Scala IDE for Eclipse Source feature" are not necessary.
cd $LOGBACK_HOME
where $LOGBACK_HOME stands for the location where you cloned the logback project from github- In case they exist, remove .settings, .classpath, .project folders (again if any) under $LOGBACK_HOME and its sub-folders. Somehow, this step seems to be crucial.
- From the command line, run
mvn eclipse:eclipse
in $LOGBACK_HOME - In Eclipse, import the logback project: Import→ General→ Existing Prokects into Workspace, select $LOGBACK_HOME folder for the import
- In Eclipse, add the scala nature to logback-core project: (right click on logback-core project→ Configure→ Add Scala Nature)
- In Eclipse, remove the logback-classic/target/generated-sources/groovy-sttubs/main directory from the list of source folders (logback-classic→ project properties → Java Build Path)
- In Eclipse, clean all projects in Eclipse (Project → Clean)
- In Eclipse, select logback-classic project and convert it to "Groovy project" (right click on logback-classic project → Configure → Convert Groovy to Project)