All
All
Projects
Snippets
Go
Explore
Home
About
Get Involved
IP
Legal
Interact With Us
Blog
Webinars
Discord
Twitter
YouTube
Facebook
OpenNTF GitHub
OpenNTF Connections GitHub
IBM Connections Downloads
DominoHelp (external)
Explore
Home
About
Get Involved
IP
Legal
Interact With Us
Blog
Webinars
Resources
Discord
Twitter
YouTube
Facebook
OpenNTF GitHub
OpenNTF Connections GitHub
IBM Connections Downloads
DominoHelp (external)
Resources
Discord
Twitter
YouTube
Facebook
OpenNTF GitHub
OpenNTF Connections GitHub
IBM Connections Downloads
DominoHelp (external)
Projects
Snippets
Collaboration Today
Sign In
Username
Password
Forgotten your login credentials?
Login
Register
All
All
Projects
Snippets
Go
Project Spotlight: OpenLog, XPages OpenLog Logger, XLogBack
Posted by
Paul Withers
on
May 25, 2016
For this month's project spotlight, I wanted to highlight error logging. Firstly, it's worth making a clear distinction, that the projects on OpenNTF help with error logging. But error
handling
is a completely different topic and no framework, regardless of the language, can ensure errors are appropriately handled for custom applications. Error handling comes down to managing the process in which the error occurs in a way that best supports the user and application, to ensure quality and integrity of data. For example, proper validation on both server-side and client-side would fall under error handling, but if the developer doesn't apply validation correctly in the right places, errors won't be handled adequately. Error logging is designed to aid support, not improve data quality and integrity.
Domino has had logging in-built in its core API for some time via the NotesLog class in LotusScript, corresponding to the Log class in Java. This allows logging to a Domino database, an email, a file or each agent's internal log (accessible via Agent > Log) in Domino Designer. But like the core Java logging mechanism, many (and possibly most) developers have chosen a more extensive open source solution for Domino - Julian Robichaux's excellent
OpenLog
.
For anyone not familiar with it,
OpenLog
not only captures logging from LotusScript and Java, but also JavaScript. It captures considerable information, including client versions, user triggering the error, access levels and roles, source of the error and stack trace. This is invaluable for tracking down the actual cause of an issue and has, in the past, allowed me to quickly identify the cause of an issue was an upgrade to a user, when I wasn't even aware upgrades were planned. Logging also allows document links to be added, to help identify document-related causes. In addition, notification profiles can be set up and standard Domino archiving processes can be utilised to keep database sizes manageable.
When XPages came along, a server-side JavaScript version was created for
TaskJam
by Matt White, but the project was not Apache-licensed, causing a problem for other projects that wanted to utilise it. That is why
XPages Help Application
included a Java library based on Julian's original OpenLog Java Script Library.
But the opportunity for XPages-specific enhancements increased as XPages and knowledge of the framework matured. This caused its evolution into a separate project
XPages OpenLog Logger
, by the same author, Paul Withers.
XPages OpenLog Logger
supported easier use from SSJS, filtering of errors so the same error was not logged for multiple phases of the XPages lifecycle, capturing uncaught exceptions, greater configuration and flexibility using notes.ini or xsp.properties and much more. It also allowed the library to be deployed within each application or server-wide as an OSGi plugin. Full documentation has also more recently been migrated to OpenNTF's Confluence server, in a specific
space
. The database errors are logged to and form used have not been changed - it still uses the original OpenLog project. But it brings a greater flexibility to error logging.
For those utilising the
OpenNTF Domino API
( a growing number of developers), XPages OpenLog Logger comes as part of that plugin, making it available to XPages, to other OSGi plugins and applications, or even beyond Domino, in
CrossWorlds
.
But beyond the Domino space, Java developers are used to a different standard error logging approach. Historically this has meant log4j, but that has evolved into and been replaced by
LogBack
. Serdar Basegmez has taken that library and integrated it as a separate OpenNTF project,
XLogBack
, for a more a more Java-ish way of logging. The documentation (available to browse in the readme file on the
Stash repository
) gives a nice table of comparison with XPages OpenLog Logger.
So whether you're still developing Notes Client applications or using XPages, DOTS and going beyond Domino, OpenNTF provides best practice options for developers from a variety of backgrounds.
If you're developing or have developed a project with just print statements or no error logging at all, consider working with either Serdar or Paul (or the other project chefs of XPages OpenLog Logger) to leverage proper error logging. XPages OpenLog Logger has already been integrated into projects like Resource Reservations Extended and we would be happy to help include more robust error logging in other OpenNTF projects. And if you are interested in the ICS Developer Contest, having XPages OpenLog Logger or XLogBack integrated by another person would constitute having multiple contributors, and therefore a team!
Please enable JavaScript to view the
comments powered by Disqus.
comments powered by
Disqus