This documentation relates to an old version of VIVO, version 1.10.x. Looking for another version? See all documentation.
The VIVO log file contains time-stamped statements intended to help you
- identify the configuration of VIVO,
- monitor the progress of the application, and
- diagnose problems that occur.
The log file is written to the
logs directory of your Tomcat application. It is usually called
vivo.all.log, but the name may vary, depending on how your VIVO was installed.
The log file can also be helpful during development and debugging. This is particularly true if the developer takes advantage of the different logging levels.
What does a log message look like?
Here is an example of some code that writes to the log
and here is the resulting line in the log:
The log holds the time that the statement was written, the severity level of the message,
the name of the Java class that wrote the statement, and the contents of the statement itself.
Writing exceptions to the log can be tricky: check out this page on Writing Exceptions to the Log
What is the right level for a log message?
Each log message has an output level (sometimes known as a severity level).
The most common levels are DEBUG, INFO, WARN, ERROR.
Each level conveys a sense of how important the message is.
Serious errors which need to be addressed and may result in unstable state.
Runtime situations that are undesirable or unexpected, but not necessarily "wrong", especially if the system can compensate; "almost" errors.
Interesting runtime events; routine monitoring information. Commonly used to describe how the system starts up, or changes that are worth noting as the system runs.
Used by developers when debugging their code. These messages will not appear in the log unless specifically enabled (see below)
The logging framework also supports the levels of
FATAL for very serious errors,
TRACE for verbose debugging messages, but these are much less commonly used.
Setting the output levels
The output levels for VIVO are determined by a file called
This file sets the general output level to
INFO, which means that messages at the
INFO level or higher will be written to the log. Messages at
DEBUG or lower will not be written to the log.
The file also sets higher output levels for some classes that are otherwise too chatty with their log messages. So for example, the
StartupStatus class is assigned an output level of
WARN. This means that messages at the
WARN level or higher will be written to the log, and messages at
INFO or lower will not.
Developers can make temporary changes to these settings by creating a file called
When VIVO is rebuilt, the settings in this file will be used instead of the settings in the default file. A developer will commonly change the output level of the classes or packages he is currently working on, using this file.
The debug settings file is ignored by Git. As a result it remains unique to the individual developer, and can be changed without concern.
The debug settings file should not be present in a VIVO that is being built for production use.
Changing levels while VIVO is running
You can change the log levels for individual Java classes while VIVO is running.
Direct your browser to
This page requires that you log in to VIVO as an administrator. ]/admin/log4j.jsp
This page shows a list of all Java classes with active Logger components. Each class has a drop-down list that allows you to set the log output level for that class. Select the level(s) you want, and scroll to the bottom of the page to click the button labeled
Submit changes to logging levels. The change is effective immediately.
This feature should be used with care. A log level of
DEBUG can significantly slow down some Java classes, and can result in very large amounts of output to the log of a busy system.
log4j.jsp page shows only the classes with active Loggers. This means that you can't set use this page to set the output level of a class prior to the first time it is used. Java loads classes dynamically, and until the class is loaded, it does not have an active Logger.