Java Logback Using HTTP/S
Loggly provides the infrastructure to aggregate and normalize log events so they are available to explore interactively, build visualizations, or create threshold-based alerting. In general, any method to send logs from a system or application to an external source can be adapted to send logs to Loggly. The following instructions provide one scenario for sending logs to Loggly.
You can send your Java logs using our Logback extension. It sends directly from your application to Loggly using the HTTP/S Event API.
We automatically parse out the timestamp, method, fully classified class name, thread, and log level from these log lines. It also allows you to send properly formatted multiline stacktraces. Please note that the HTTP protocol has a data rate that is limited by your latency to our log collector. This guide uses logback-ext-loggly version 0.1.2 or higher, and the default Logback configuration. For alternatives, please see the Advanced Options section.
Java Logback Setup
1. Add Logback Extension
Add a dependency for the Loggly Logback extension from the Maven repository or from GitHub. The Maven repository has code snippets to add the dependencies for many common package managers.
For example, if you are using Maven, then add this to the dependencies section of your pom.xml file.
<dependency> <groupId>org.logback-extensions</groupId> <artifactId>logback-ext-loggly</artifactId> <version>0.1.5</version> </dependency>
Then run maven to install the extension
mvn clean install
2. Logback Configuration
Open or create your logback.xml configuration file and add the LogglyAppender. The following pattern will parse the log as Java log in Loggly and it also parses the objects in JSON format and string in the plain text format.
<configuration debug="true"> <appender name="loggly" class="ch.qos.logback.ext.loggly.LogglyBatchAppender"> <endpointUrl>https://logs-01.loggly.com/bulk/TOKEN/tag/logback</endpointUrl> <pattern>%d{"ISO8601", UTC} %p %t %c %M - %m%n</pattern> </appender> <root level="info"> <appender-ref ref="loggly" /> </root> </configuration>
Replace:
- TOKEN: your customer token from the source setup page
3. Add Logging Code
Add code to construct an SLF4J Logger and then send a test event.
import org.slf4j.*;
final static Logger logger = LoggerFactory.getLogger(ClassName.class);
logger.info("Hello World from Logback!");
logger.info("{\"message\" : \"Hello World from Logback!\"}");
Replace:
- ClassName: your java application class name
4. Send Test Events
Run your application to send test events to Loggly.
5. Verify Events
Search Loggly for events with tag as Logback over the past 20 minutes. It may take a few minutes to index the event. If it doesn’t work, see the troubleshooting section below.
tag:logback
Click on one of the logs to show a list of Java or JSON fields (see screenshot below). If you don’t see them, please check that you are using one of our automatically parsed formats.
6. Next Steps
- Troubleshooting with Java Logs – Use your Java logs to find the most common exceptions, trace transactions, debug memory issues, and more.
Advanced Java Logback Options
- Java Logback Using Syslog – send logs using the syslog protocol for nonblocking and higher data rate applications
- Java Log4j – Send Log4j logs over syslog if you prefer local centralized management
- HTTP/S Bulk Endpoint – Send up to 5MB batches of logs over HTTP/S for higher performance
- Log File Monitoring – You can also configure Log4j with a FileAppender, then monitor that file using Rsyslog. This gives you a local backup.
- Programmatic Configuration – You can set Loggly’s configurations, like loggly_collector, logging_mode, customer_token, tags, etc., programmatically without creating a separate XML configuration file. Please see a working sample project here to achieve this.
- Search or post your own Java Logback or Java logging questions in the community forum.
Troubleshooting Java Logging
If you don’t see any data show up in the verification step, then check for these common problems.
Check Logback:
- Wait a few minutes in case indexing needs to catch up.
- Verify Logback is working, such as by setting up a local file appender with the same format.
- See our HTTP Troubleshooting Guide to verify HTTP events are being sent to Loggly.
Still Not Working?
- Search or post your own logback question in the community forum.
The scripts are not supported under any SolarWinds support program or service. The scripts are provided AS IS without warranty of any kind. SolarWinds further disclaims all warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose. The risk arising out of the use or performance of the scripts and documentation stays with you. In no event shall SolarWinds or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the scripts or documentation.