Log4j2 HTMLLayout Configuration Example

This Log4j2 example will help you in configuring log4j2.xml file with HTMLLayout. The HTMLLayout generates an HTML page and adds each log statement to a row in a table.

Log4j2 HTMLLayout Output

This Log4j2 example will help you in configuring log4j2.xml file with HTMLLayout. The HTMLLayout generates an HTML page and adds each log statement to a row in a table.

1. HTMLLayout Configuration Options

You can use following attributes while configuring HTMLLayout:

  1. locationInfo – If “true”, location information will be included. The default is false.
  2. title – The title to include in the file header. If none is specified the default title will be used.
  3. contentType – The content type. Defaults to “text/html”.
  4. charset – The character set to use. If not specified, the default will be used.
  5. fontSize – The font size of the text.
  6. font – The font to use for the text.

Let’s see different configurations options for generating HTML format-based log files.

1.1. Log4j2.xml Configuration

 <?xml version="1.0" encoding="UTF-8"?> <Configuration status="warn"> <Properties> <Property name="basePath">C:\\logs</Property> </Properties> <Appenders> <RollingFile name="fileLogger" fileName="${basePath}/app-info.html" filePattern="${basePath}/app-info-%d{yyyy-MM-dd}.html"> <HTMLLayout charset="UTF-8" title="Howtodoinjava Info Logs" locationInfo="true" /> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> <SizeBasedTriggeringPolicy size="10 MB" /> </Policies> </RollingFile> <Console name="console" target="SYSTEM_OUT"> <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" /> </Console> </Appenders> <Loggers> <Logger name="com.howtodoinjava" level="debug" additivity="false"> <appender-ref ref="fileLogger" level="debug" /> </Logger> <Root level="debug" additivity="false"> <appender-ref ref="console" /> </Root> </Loggers> </Configuration> 

1.2. Log4j2.properties Configuration

 status = error name = PropertiesConfig #Make sure to change log file path as per your need property.filename = C:\\logs\\app-info.html filters = threshold filter.threshold.type = ThresholdFilter filter.threshold.level = debug appenders = rolling appender.rolling.type = RollingFile appender.rolling.name = RollingFile appender.rolling.fileName = ${filename} appender.rolling.filePattern = debug-backup-%d{MM-dd-yy-HH-mm-ss}-%i.html.gz appender.rolling.layout.type = HTMLLayout appender.rolling.layout.charset = UTF-8 appender.rolling.layout.title = Howtodoinjava Info Logs appender.rolling.layout.locationInfo = true appender.rolling.policies.type = Policies appender.rolling.policies.time.type = TimeBasedTriggeringPolicy appender.rolling.policies.time.interval = 1 appender.rolling.policies.time.modulate = true appender.rolling.policies.size.type = SizeBasedTriggeringPolicy appender.rolling.policies.size.size=10MB appender.rolling.strategy.type = DefaultRolloverStrategy appender.rolling.strategy.max = 20 loggers = rolling #Make sure to change the package structure as per your application logger.rolling.name = com.howtodoinjava logger.rolling.level = debug logger.rolling.additivity = false logger.rolling.appenderRef.rolling.ref = RollingFile 

1.3. Log4j2.json Configuration

 { "configuration": { "name": "Default", "appenders": { "RollingFile": { "name":"File", "fileName":"C:/logs/howtodoinjava.html", "filePattern":"C:/logs/howtodoinjava-backup-%d{MM-dd-yy-HH-mm-ss}-%i.html.gz", "HTMLLayout": { "charset":"UTF-8", "title":"Howtodoinjava Info Logs", "locationInfo":"true" }, "Policies": { "SizeBasedTriggeringPolicy": { "size":"10 MB" } }, "DefaultRolloverStrategy": { "max":"10" } } }, "loggers": { "root": { "level":"debug", "appender-ref": { "ref":"File" } } } } } 

2. Log Statements

Now let’s use dome log statements to generate log files.

 package com.howtodoinjava.log4j2.examples; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class Log4j2HelloWorldExample {	private static final Logger LOGGER = LogManager.getLogger(Log4j2HelloWorldExample.class.getName());	public static void main(String[] args)	{	LOGGER.debug("Debug Message Logged !!");	LOGGER.info("Info Message Logged !!");	LOGGER.debug("Another Debug Message !!");	} } 

3. Log4j2 HTMLLayout Output Example

Running the above log files will generate the following HTML file.

Log4j2 HTMLLayout Output
Log4j2 HTMLLayout Output

Drop me your questions in the comments section.

Reference:

http://logging.apache.org/log4j/2.x/manual/layouts.html#HTMLLayout
https://logging.apache.org/log4j/2.x/log4j-core/apidocs/org/apache/logging/log4j/core/layout/HtmlLayout.html

Comments

Subscribe
4 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments

About Us

HowToDoInJava provides tutorials and how-to guides on Java and related technologies.

It also shares the best practices, algorithms & solutions and frequently asked interview questions.