By default, HiveMQ logs information to the hivemq.log
file for each HiveMQ extension that you run. The additional entries can make it more difficult to evaluate information in the log output. The use of separate log files for your HiveMQ extensions can make it easier for you to efficiently monitor and troubleshoot your applications.
The following example shows you how to create a separate log file for the HiveMQ MQTT Message Log Extension. The steps are similar for all HiveMQ extensions.
\uD83D\uDCD8 Instructions
Prerequisites
An installed version of the HiveMQ MQTT Message Log Extension.
For more information, see MQTT Message Log Extension and MQTT Message Log Extension GitHub repository.
Once you have successfully installed the MQTT Message Log extension, a log entry similar to the following statement confirms your installation.
INFO - Extension "HiveMQ Mqtt Message Log Extension" version 1.1.3 started successfully.
Extension Log File Configuration
To create a separate log file for the extension, you must add an appropriately defined appender to the logback.xml
of your HiveMQ configuration.
The additional appender and logger configurations specify the output file, rolling policy, log pattern, and logger that are used to log extension information.
The following code example places a log file named mqtt-message.log
in the log
folder of your HiveMQ installation.
This configuration sets up a rolling file appender that writes logs to a file named mqtt-message.log
, rolls over to the next file when the maximum file size reaches 100MB, and keeps a fixed window of log files from index 1 to index 5. The rolled files are compressed and named with the pattern mqtt-message.%date.%i.log.gz
Example appender for MQTT Message Log extension log file configuration
<appender name="MQTT-MESSAGE-LOG-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${hivemq.log.folder}/mqtt-message.log</file> <append>true</append> <encoder> <pattern>%-30(%d %level)- %msg%n%ex</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${hivemq.log.folder}/mqtt-message.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <minIndex>1</minIndex> <maxIndex>5</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>100MB</maxFileSize> <checkIncrement>10000</checkIncrement> </triggeringPolicy> </appender>
The following example logger configuration adds the required logger.
Example MQTT Message Log extension logger configuration
<logger name="com.hivemq.extensions.log.mqtt" level="DEBUG" additivity="false"> <appender-ref ref="MQTT-MESSAGE-LOG-FILE"/> </logger>
In the logger configuration, the logger name
must match the package name of the associated extension and the appender-ref
must match the name of the defined appender.
Extension Log File Verification
To verify creation of the extension log file, go to the log
folder of your HiveMQ installation. Based on the scanPeriod
that is set in the logback.xml
file in your conf
folder, HiveMQ scans the changes and updates your configuration. If you have disabled automatic scanning (scan=false
), you must restart HiveMQ to apply the changes.
Look for a new file named mqtt-message.log
in the log
directory.
Open the mqtt-message.log
file and confirm that an extension start entry or other INFO entries are visible.
INFO - HiveMQ MQTT Message Log Extension: Will try to read config properties from mqttMessageLog.properties INFO - HiveMQ MQTT Message Log Extension: Properties initialized to: {subscribe-received=true, pubcomp-send=true, unsuback-send=true, topic-regex=, client-regex=, pubcomp-received=true, client-disconnect=true, puback-received=true, connack-send=true, publish-send=true, suback-send=true, unsubscribe-received=true, pubrec-send=true, pubrec-received=true, verbose=false, ping-request-received=true, pubrel-send=true, client-connect=true, publish-received=true, ping-response-send=true, puback-send=true, pubrel-received=true}
\uD83D\uDCCB Related articles
Filter by label
There are no items with the selected labels at this time.