Catalina_base Tomcat 8
This article will walk you through the installation and configuration of Tomcat 8 on a server running Ubuntu 16.04. Opt/tomcat Environment=CATALINABASE=/opt. How to upgrade tomcat 8.5.x? First-time Tomcat user here. I installed 8.5.9months ago, and would like to upgrade to the latest 8.5.15. I see there's some documentation for updating the 8.5.x branch. Set CATALINAHOME=c:tomcat8 set CATALINABASE=c:tomcat8instancesinstance1 service install instance1 To modify the service settings, you can run tomcat8w //ES//instance1. For additional instances, create additional instance folder, update the CATALINABASE environment variable, and run the service install again. This allows, for example, running Tomcat as a non privileged user while still being able to use privileged ports. Note that if you use this option and start Tomcat as root, you'll need to disable the org.apache.catalina.security.SecurityListener check that prevents Tomcat starting when running as root.
How-to configure Log4j on Tomcat is described in the Tomcat documentation, but the documentation sample configuration is not correct. So in this post we see what we need to do to replace the default Java Util Logging (JUL) configuration and use Log4j in Tomcat. A big advantage is that if an application uses Log4j then we can configure the logging at a central place for the Tomcat instance. And another advantage is we can use our knowledge on how to configure Log4j logging and we don't have to learn Tomcat's syntax extensions to the JUL logging configuration.
Setup the classpath
First we must add same extra JAR files to our Tomcat classpath. We replace the default JUL Tomcat library with one that support Log4j. And of course we must add the Log4j library to the classpath.
Tomcat already provides the JAR files we need to use Log4j in Tomcat. These files are not in the normal distribution of Tomcat, but we can download them from the website. On the download page we must select the Browse link. From there we go to bin/extras
and here we see two files we must download: tomcat-juli.jar
and tomcat-juli-adapters.jar
. We place the tomcat-juli.jar
file in our $CATALINA_BASE/bin
directory. The file tomcat-juli-adapters.jar
is copied to our $CATALINA_BASE/lib
directory.
Next we download the latest log4j 1.2 library from the download page. We must unpack the downloaded file to a directory on our computer. Next we copy from the directory with the extracted file we downloaded the file log4j-1.2.<version>.jar
to the $CATALIN_BASE/lib
directory.
Add Log4j configuration
Our classpath is now setup and we can add our Log4j configuration file. First we disable the old Tomcat JUL logging configuration. We find this configuration file is in the $CATALINA_BASE/conf
directory. The name of the file is logging.properties
and we move this file to $CATALINA_BASE/conf/logging.properties.jul
. Tomcat cannot use the file for configuration, but we still have a backup. With the old configuration out of the way we can create a new Log4j configuration file. In the $CATALINA_BASE/lib
directory we create the file log4j.properties
. If we look at the sample configuration file in the Tomcat documentation we notice the file contains errors. For example the conversionPattern
is not configured on the layout
property. We can use the following sample Log4j configuration:
We are ready and we can start Tomcat. Tomcat starts up and uses Log4j for logging messages.
Everything works fine, but if we don't want to the Log4j configuration in the $CATALINA_BASE/lib
directory but in the $CATALINA_BASE/conf
directory? We can move the log4j.properties
file from the $CATALINA_BASE/lib
directory to the $CATALINA_BASE/conf
directory. Then we must use the system property -Dlog4j.configuration=file://$CATALINA_BASE/conf/log4j.properties
when we start Tomcat. In Tomcat 6 and 7 we can use the environment variable LOGGING_CONFIG
to set this value, because it is used by the Catalina scripts when we start Tomcat.
Introduction
Table of Contents

- CATALINA_HOME and CATALINA_BASE
Introduction
For administrators and web developers alike, there are some important bitsof information you should familiarize yourself with before starting out. Thisdocument serves as a brief introduction to some of the concepts andterminology behind the Tomcat container. As well, where to go when you needhelp.
Terminology
In the course of reading these documents, you will run across a number ofterms; some specific to Tomcat, and others defined by theServlet andJSP specifications.
- Context - In a nutshell, a Context is a web application.
That is it. If you find any more terms we need to add to this section, pleasedo let us know.
Directories and Files
These are some of the key tomcat directories:
- /bin - Startup, shutdown, and other scripts. The
*.sh
files (for Unix systems) are functional duplicates of the*.bat
files (for Windows systems). Since the Win32 command-line lacks certain functionality, there are some additional files in here. - /conf - Configuration files and related DTDs. The most important file in here is server.xml. It is the main configuration file for the container.
- /logs - Log files are here by default.
- /webapps - This is where your webapps go.
CATALINA_HOME and CATALINA_BASE
Throughout the documentation, there are references to the two following properties:
- CATALINA_HOME: Represents the root of your Tomcat installation, for example
/home/tomcat/apache-tomcat-9.0.10
orC:Program Filesapache-tomcat-9.0.10
. - CATALINA_BASE: Represents the root of a runtime configuration of a specific Tomcat instance. If you want to have multiple Tomcat instances on one machine, use the
CATALINA_BASE
property.
If you set the properties to different locations, the CATALINA_HOME location contains static sources, such as .jar
files, or binary files. The CATALINA_BASE location contains configuration files, log files, deployed applications, and other runtime requirements.
Why Use CATALINA_BASE
By default, CATALINA_HOME and CATALINA_BASE point to the same directory. Set CATALINA_BASE manually when you require running multiple Tomcat instances on one machine. Doing so provides the following benefits:
- Easier management of upgrading to a newer version of Tomcat. Because all instances with single CATALINA_HOME location share one set of
.jar
files and binary files, you can easily upgrade the files to newer version and have the change propagated to all Tomcat instances using the same CATALIA_HOME directory. - Avoiding duplication of the same static
.jar
files. - The possibility to share certain settings, for example the
setenv
shell or bat script file (depending on your operating system).
Contents of CATALINA_BASE
Before you start using CATALINA_BASE, first consider and create the directory tree used by CATALINA_BASE. Note that if you do not create all the recommended directories, Tomcat creates the directories automatically. If it fails to create the necessary directory, for example due to permission issues, Tomcat will either fail to start, or may not function correctly.
Consider the following list of directories:
The
bin
directory with thesetenv.sh
,setenv.bat
, andtomcat-juli.jar
files.Recommended: No.
Order of lookup: CATALINA_BASE is checked first; fallback is provided to CATALINA_HOME.
The
lib
directory with further resources to be added on classpath.Recommended: Yes, if your application depends on external libraries.
Order of lookup: CATALINA_BASE is checked first; CATALINA_HOME is loaded second.
The
logs
directory for instance-specific log files.Recommended: Yes.
The
webapps
directory for automatically loaded web applications.Recommended: Yes, if you want to deploy applications.
Order of lookup: CATALINA_BASE only.
The
work
directory that contains temporary working directories for the deployed web applications.Recommended: Yes.
The
temp
directory used by the JVM for temporary files.Recommended: Yes.
We recommend you not to change the tomcat-juli.jar
file. However, in case you require your own logging implementation, you can replace the tomcat-juli.jar
file in a CATALINA_BASE location for the specific Tomcat instance.
We also recommend you copy all configuration files from the CATALINA_HOME/conf
directory into the CATALINA_BASE/conf/
directory. In case a configuration file is missing in CATALINA_BASE, there is no fallback to CATALINA_HOME. Consequently, this may cause failure.
At minimum, CATALINA_BASE must contain:
- conf/server.xml
- conf/web.xml
Catalina_base Tomcat 8 Download
That includes theconf
directory. Otherwise, Tomcat fails to start, or fails to function properly. For advanced configuration information, see the RUNNING.txt file.
How to Use CATALINA_BASE
The CATALINA_BASE property is an environment variable. You can set it before you execute the Tomcat start script, for example:
- On Unix:
CATALINA_BASE=/tmp/tomcat_base1 bin/catalina.sh start
- On Windows:
CATALINA_BASE=C:tomcat_base1 bin/catalina.bat start
Configuring Tomcat
This section will acquaint you with the basic information used duringthe configuration of the container.
All of the information in the configuration files is read at startup,meaning that any change to the files necessitates a restart of the container.
Where to Go for Help
While we've done our best to ensure that these documents are clearlywritten and easy to understand, we may have missed something. Providedbelow are various web sites and mailing lists in case you get stuck.
Keep in mind that some of the issues and solutions vary between themajor versions of Tomcat. As you search around the web, there will besome documentation that is not relevant to Tomcat 8, butonly to earlier versions.

Catalina_base Tomcat 8 Software
- Current document - most documents will list potential hangups. Be sure to fully read the relevant documentation as it will save you much time and effort. There's nothing like scouring the web only to find out that the answer was right in front of you all along!
- Tomcat FAQ at jGuru
- Tomcat mailing list archives - numerous sites archive the Tomcat mailing lists. Since the links change over time, clicking here will search Google.
- The TOMCAT-USER mailing list, which you can subscribe to here. If you don't get a reply, then there's a good chance that your question was probably answered in the list archives or one of the FAQs. Although questions about web application development in general are sometimes asked and answered, please focus your questions on Tomcat-specific issues.
- The TOMCAT-DEV mailing list, which you can subscribe to here. This list is reserved for discussions about the development of Tomcat itself. Questions about Tomcat configuration, and the problems you run into while developing and running applications, will normally be more appropriate on the TOMCAT-USER list instead.
Tomcat Catalina Properties
And, if you think something should be in the docs, by all means let us knowon the TOMCAT-DEV list.