
📖Logging
Add precise timing and exact code location to your logging data.
KLog Class Overview
Built on Standard Java Logging Utilizes the built-in java.util.logging framework, part of Java SE. No additional external libraries, such as Apache Log4j, are required.
High Performance Capable of logging over 10,000 lines per second on a MacBook Pro when using the FileHandler and KLogLineFormatter.
Simplified Logging Streamlines logging with straightforward methods for debug, error, and info messages.
Static Methods All methods are static, eliminating the need for instantiation.
Flexible Handlers and Formatters Includes handlers and formatters for generating log output in various formats: tabular text, CSV, XML, JSON, and YAML. Supports sending logs to JDBC-compliant databases or routing error logs to any SMTP server.
Enhanced Log Details Provides precise timestamps and exact code locations in formatted log outputs.
Configuration and Runtime Adjustments Logging is enabled via the KLog.properties configuration file, which must be located in the current directory or set thru the startup parameter KLogPropertyFile. Logging levels can dynamically be adjusted and log entries may be filtered at runtime.
The Java utility package uses KLog internally to assist with problem determination. Setting the log level to FINEST in the KLog.properties file enables detailed debugging mode, providing comprehensive insights during code execution.
Logging Handlers
In addition to the standard logging handlers for console and file output, KLog provides the additional classes:
KLogJDBCHandler: Write each log entry to any JDBC compliant database
KLogSMTPHandler: Send error log entries (FATAL logging level) to any SMTP server
Logging Formatters
The log information (timestamp, logging level, code location and message) can be formatted with the additional formatter classes:
KLogCSVFormatter: Format each log entry as a one-line CSV string
KLogJSONFormatter: Format each log entry as a multi-line JSON string
KLogLineFormatter: Format each log entry as a one-line tabular string
KLogXMLFormatter: Format each log entry as a multi-line XML string
KLogYAMLFormatter: Format each log entry as a multi-line YAML string
Sample Properties Files
The logging properties file enables and configures the logging framework used by all KLog methods. Simply download, edit and and place it in the current directory of your application.
Special Properties
Startup System Properties
-DKLogPropertyFile
"KLog.properties"
Path and file name of KLog properties file
-DKLogLevel
Set by the KLog properties file
Override KLog level to Info, Error, Debug or Off
-DKLogInclude
Set by the KLog properties file
Limit log entries to specified RegEx match, e.g. “password“
-DKLogExclude
Set by the KLog properties file
Exclude log entries matching RegEx, e.g. “started|ended“
Examples
Please note that all command line options are case sensitive.
Common KLog Properties
ch.k43.util.KLog.level
FINEST, INFO, SEVERE, OFF
Corresponds to KLog logging levels Debug, Info, Error, Off
ch.k43.util.KLog.exclude
RegEx Pattern
Exclude matching log entries, e.g. “password“
ch.k43.util.KLog.include
RexEx Pattern
Include only matching log entries, e.g. “started|ended“
KLog.properties for KLogJDBCHandler
ch.k43.util.KLogJDBCHandler.jdbc.driver
JDBC Driver Class
Java class name, e.g. org.h2.Driver
ch.k43.util.KLogJDBCHandler.jdbc.url
Connection URL
e.g. jdbc:h2:mem:mydb
ch.k43.util.KLogJDBCHandler.jdbc.username
Connection user name
e.g. johnsmith
ch.k43.util.KLogJDBCHandler.jdbc.password
Connection password
e.g. Pa$$w0rd
ch.k43.util.KLogJDBCHandler.tablename
Database table name
Table name to be used, e.g. KLOGDATA
ch.k43.util.KLogJDBCHandler.retensiondays
Number
Number of days to keep log entries, e.g. 14
ch.k43.util.KLogJDBCHandler.debug
true, false
Send debug data to standard output (stdout)
KLog.properties for KLogSMTPHandler
h.k43.util.KLogSMTPHandler.mail.subject
Email subject
e.g. "Application Error"
ch.k43.util.KLogSMTPHandler.smtp.hostname
SMTP hostname
e.g. mail.acme.com
ch.k43.util.KLogSMTPHandler.smtp.hostport
SMTP port number
e.g. 25
ch.k43.util.KLogSMTPHandler.smtp.username
SMTP authentication user name (or none)
e.g. [email protected]
ch.k43.util.KLogSMTPHandler.smtp.password
SMTP authentication password (or none)
e.g. Pa$$w0rd
ch.k43.util.KLogSMTPHandler.smtp.tls
true, false
Use TLS or Non-TLS connection
ch.k43.util.KLogSMTPHandler.threshold
Number
Maximum number of email sent per minute
ch.k43.util.KLogSMTPHandler.debug
true, false
Send debug data to standard output (stdout)
KLog.properties for KLogCSVFormatter
ch.k43.util.KLogCSVFormatter.writeheader
true, false
Add header lines with column names
Examples
Last updated