Stumpless Versions Save

a C logging library built for high performance and a rich feature set

v2.1.0

1 year ago

API documentation available on the stumpless website.

Added

  • Custom function logging targets.
  • Localizations for:
    • Bengali (bn-IN :india:)
    • Chinese (zh-CN :cn:)
    • Czech (cz-CZ :czech_republic:)
    • Hindi (hi-IN :india:)
    • Polish (pl-PL :poland:)
    • Portuguese (pt-BR :brazil:)
    • Spanish (es-ES :es:)
  • Systemd journal logging targets (journald).
  • Log source file tracing functions:
    • stump_trace
    • stumpless_trace_entry
    • stumpless_trace_log
    • stumpless_trace_message
    • stumplog_trace
    • vstump_trace
    • vstumpless_trace_log
    • vstumpless_trace_message
    • vstumplog_trace
  • The TRACE log level severity shorthand function macros:
    • stump_t
    • stump_t_entry
    • stump_t_log
    • stump_t_message
    • stumplog_t
  • Macro STUMPLESS_SEVERITY_TRACE_VALUE as an alias for STUMPLESS_SEVERITY_DEBUG_VALUE.
  • Macro STUMPLESS_SEVERITY_TRACE for the new level as an alias for the STUMPLESS_SEVERITY_DEBUG enum member.
  • Runtime filtering mechanism, as well as default support for log masks, via the following functions:
    • stumpless_get_target_filter
    • stumpless_get_target_mask
    • stumpless_mask_filter
    • stumpless_set_target_filter
    • stumpless_set_target_mask
    • stumplog_set_mask
  • Safer and more performant _str versions of any function taking a format specifier string and variable number of arguments.
  • Default Windows Event Log messages that can be used when none are specified.
  • Full unicode support with Windows Event Log targets, along with the following new functions:
    • stumpless_add_default_wel_event_source
    • stumpless_add_wel_event_source
    • stumpless_add_wel_event_source_w
    • stumpless_get_wel_category
    • stumpless_get_wel_event_id
    • stumpless_get_wel_insertion_param
    • stumpless_get_wel_insertion_string_w
    • stumpless_get_wel_type
    • stumpless_remove_default_wel_event_source
    • stumpless_remove_wel_event_source
    • stumpless_remove_wel_event_source_w
    • stumpless_set_wel_insertion_string_w
    • stumpless_set_wel_insertion_strings_w
    • vstumpless_set_wel_insertion_strings_w
  • STUMPLESS_OPTION_CONS is now supported with similar semantics to LOG_CONS from syslog.h.
  • The procid and hostname can be overriden if the defaults are not wanted, via the functions:
    • stumpless_get_entry_hostname
    • stumpless_get_entry_procid
    • stumpless_set_entry_hostname
    • stumpless_set_entry_procid
  • Other new functions:
    • stumpless_get_network_protocol
    • stumpless_get_target_type_string
    • stumpless_get_transport_protocol

Changed

  • Auto-generated local socket names use abstract socket names if supported.
  • Auto-generated local socket names are always stumpless-socket instead of being generated using mkstemp.

Fixed

  • stumpless_perror segmentation faults after the following errors:
    • STUMPLESS_FILE_OPEN_ERROR
    • STUMPLESS_FILE_WRITE_ERROR
    • STUMPLESS_INVALID_ID
    • STUMPLESS_MEMORY_ALLOCATION_FAILURE
    • STUMPLESS_NETWORK_PROTOCOL_UNSUPPORTED
    • STUMPLESS_STREAM_WRITE_FAILURE
    • STUMPLESS_TRANSPORT_PROTOCOL_UNSUPPORTED
    • STUMPLESS_WINDOWS_EVENT_LOG_CLOSE_FAILURE
    • STUMPLESS_WINDOWS_EVENT_LOG_OPEN_FAILURE
  • Several memory leaks:
    • Object cache leak in some allocation failure scenarios
    • Creating network target with unsupported protocols
  • close syscall is no longer called on invalid socket handles
  • TCP network targets do not hang when the session is closed by the receiver.

v2.0.0

3 years ago

Added

  • Localization framework for error messages and other library strings, and localizations for:
    • French (fr-FR :fr:)
    • German (de-DE :de:)
    • Italian (it-IT :it:)
    • Slovak (sk-SK :slovakia:)
    • Swedish (sv-SE :sweden:)
  • Thread safety for all functionality.
  • The following functions:
    • stumpless_free_thread
    • stumpless_get_element_count
    • stumpless_get_target_name
    • stumpless_get_target_default_app_name
    • stumpless_get_target_default_msgid
    • stumpless_param_to_string
    • stumpless_read_buffer
  • The following C++ function bindings:
    • Entry.GetAppName
    • Entry.GetMessage
    • Entry.GetMsgid
    • Version.Compare

Changed

  • C++ namespace from stumplesscpp to stumpless.
  • Including stumpless/config.h no longer defines WIN32_LEAN_AND_MEAN.
  • Facilities, options, and severities are now only available in the stumpless/facility.h, stumpless/option.h, and stumpless/severity.h headers, respectively.
  • Functions that return strings now require the caller to free the string when it is no longer needed. Prior to this version these strings pointed to internal character buffers that could not be modified. The functions affected by this are:
    • stumpless_get_element_name
    • stumpless_get_entry_app_name
    • stumpless_get_entry_message
    • stumpless_get_entry_msgid
    • stumpless_get_entry_param_value_by_index
    • stumpless_get_entry_param_value_by_name
    • stumpless_get_param_name
    • stumpless_get_param_name_by_index
    • stumpless_get_param_value
    • stumpless_get_param_value_by_index
    • stumpless_get_param_value_by_name
  • The underlying buffer in buffer targets should no longer be read manually, but should instead use the new stumpless_read_buffer function as the only way to read messages.
  • All target open functions no longer require an options or default facility parameter, resulting in much more concise code. If either of these fields need to be adjusted on a target, use the stumpless_set_option and stumpless_set_default_facility functions after the target has been created.
  • Facilities and severities are now enums instead of preprocessor symbols.

Deprecated

  • stumpless_destroy_entry has been deprecated in favor of the more descriptive and deliberate stumpless_destroy_entry_and_contents and stumpless_destroy_entry_only functions in order to avoid unintentional memory leaks and use-after-free mistakes.
  • stumpless_destroy_element has been deprecated in favor of the more descriptive and deliberate stumpless_destroy_element_and_contents and stumpless_destroy_element_only functions in order to avoid unintentional memory leaks and use-after-free mistakes.

Fixed

  • Memory leak in opening of network targets on systems using sys/socket.h for network services.

Removed

  • stumpless and vstumpless functions (use stump and vstump instead).
  • STUMPLESS_SEVERITY_WARN symbol.

v1.6.0

3 years ago

Added

  • A number of new functions for working with entries, elements, and params.
  • A rollup header, stumpless.hpp, for the C++ library to make use easier.
  • Logging functions that can be removed at compile time.

Fixed

  • Added missing DLL exports of C++ library in standard Visual Studio builds.
  • Local socket names are generated using mkstemp instead of using a static counter (issue #54).
  • The current target is not left pointing at an invalid target structure after the current target is closed (issue #52).