Pantheios

 Pantheios

 

Future Directions

Features that are anticipated/planned, but not yet implemented:
  1. wide-character encoding support - currently Pantheios supports only character encodings that use the char type (such as ASCII, UTF-7, UTF-8, Windows "ANSI"). Support for character encodings that use the (wchar_t) type may be introduced in a future version.
  2. Layering over existing logging infrastructures via new back-end - currently Pantheios provides a suite of stock back-ends whose output streams are determined at link time. We've proven that a new front-end/back-end pair is able to layer the peerless Pantheios logging API over existing logging libraries, such as log4cxx, that have sophisticated filtering, formatting and transport functionality. A future version may include such a combination as part of the distribution.
  3. Support for localisation, via resource bundles - because the Pantheios core sees (and understands) only string slices, it should be reasonably easy to facilitate the use of localised resource strings (which could be JIT-compiled) into which the log statement arguments (given in the application layer) could be inserted.

    Work is underway on a companion (but independent) library FastFormat. Inspired by the internals of Pantheios and the features of log4cxx, it's already been shown to be than sprintf() and much faster than the IOStreams. Expect Pantheios 1.1 to support syntax such as the following:
      pantheios::flog(pantheios::notice, "The first arg {0}, and the second {1}, and the first again {0}", arg0, arg1);
    
    Naturally, there'll be the same virtually non-existant cost if logging (of a given severity level) is not enabled. Further, any argument that is repeated will only be converted at most once.
Requests and contributions on these (and other) enhancements are welcomed.

See also

  • Essentials - essential facts you need to know about Pantheios to get up and running.
  • Pantheios Architecture - introduction to the four parts of the Pantheios architecture: Application Layer, Core, Front-end, Back-ends.
  • Downloads - download the Pantheios library (source and binaries), samples, tools and dependent projects.
  • Tutorials:
    • Getting Started - a tutorial on getting started with Pantheios, using your favourite compiler/operating-system.
    • Application Code - a tutorial on using Pantheios logging constructs in your application code.
    • Front-Ends - a tutorial on using the stock front end fe.simple, and extending Pantheios via custom front-ends.
    • Back-Ends - a tutorial on using the stock back ends, and extending Pantheios via custom back-ends.
    • Back-End Splitting - a description of how to use the stock be.lrsplit component to enable splitting of logging output to multiple back-ends.
    • Library Selector Tool - a Win32 program that can be used to select the explicit/implicit link options for a given configuration.
    • Wrapping log4cxx - a tutorial on wrapping the popular logging library log4cxx in custom front-end and back-end for use with Pantheios.
  • Related Material - read up on the concepts of Shims & Type Tunneling, on the STLSoft auto_buffer class, on namespace aliasing, and more ...
  • API Documentation - once you've familiarised yourself with Pantheios via the tutorials, use the online documentation for fine details on the API functions and types.
  • Performance - performance tests, which demonstrate the claimed peerless performance of Pantheios.
  • Future Directions - features that are anticipated/planned, but not yet implemented.
 

Links

  • STLSoft - The open-source, 100% header-only, C++ library providing operating system facades and STL extensions.
  • Synesis Software - Custom software solutions and consultancy, and provider of free system tools.
  • Kiwi Enterprises - Provider of SysLog-related products, several of which are free.
  • The SysLog protocol - The protocol that inspired the stock back-end components and severity levels.

Copyright (c) 1999-2008 Synesis Software Pty Ltd Valid XHTML 1.0 Transitional