Lumiera  0.pre.03
»edit your freedom«
logging.h File Reference

Go to the source code of this file.

Description

This header is for including and configuring NoBug.

The idea is that configuration and some commonly used flag declarations are to be kept in one central location. Subsystems are free to define and use additional flags for local use. Typically, this header will be included via some of the basic headers like error.hpp, which in turn gets included e.g. by steam/common.hpp

This header can thus be assumed to be effectively global. It should contain only declarations of global relevance, as any change causes the whole project to be rebuilt. All flags defined here are initialised automatically.

We use the 'NOBUG_DECLARATIONS_ONLY' magic to generate declarations and definitions only out of this header.

Logging configuration

By default, logging is configured such as to emit a small number of informative messages on the starting terminal and to report fatal errors. But besides the usual fine-grained tracing messages, we define a small number of distinct thematic Logging Channels providing a consistent high-level view of what is going on with regards to a specific aspect of the application

  • progress documents a high-level overall view of what the application does
  • render focuses on the working of the render engine (without logging each frame)
  • config shows anything of relevance regarding the configured state of App and session
  • memory allows to diagnose a high-level view of memory management

Any log level can be overridden by an environment variable, for example `NOBUG_LOG='progress:INFO' ./lumiera`

Todo:
logging to files?
** `NOBUG_LOG='progress:INFO@file(name=filename)'` api to set this statically up by the program will follow
** 

–cehteh

Definition in file logging.h.

#include <nobug.h>

Macros

#define NOBUG_DECLARE_ONLY   1
 magic to generate NoBug definitions
 
#define NOBUG_DECLARE_ONLY   0
 magic to generate NoBug definitions
 

Functions

 NOBUG_CPP_DEFINE_FLAG (all)
 the root switch for all logging
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (debugging, all)
 debug logging
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (main_dbg, debugging)
 debug logging for the main application starter
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (backend_dbg, debugging)
 base of debug logging for the vault layer
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (file_dbg, backend_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (filehandle_dbg, backend_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (filehandlecache_dbg, backend_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (filedescriptor_dbg, backend_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (mmap_dbg, backend_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (mmapcache_dbg, backend_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (mmapings_dbg, backend_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (thread_dbg, backend_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (threads_dbg, thread_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (threadpool_dbg, thread_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (fileheader_dbg, backend_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (proc_dbg, debugging)
 base of debug logging for the steam layer
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (command_dbg, proc_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (session_dbg, proc_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (player_dbg, proc_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (engine_dbg, proc_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (gui_dbg, debugging)
 base of debug logging for the stage layer
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (library_dbg, debugging)
 base if debug logging for the support library
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (mpool_dbg, library_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (psplay_dbg, library_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (priqueue, library_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (resourcecollector_dbg, library_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (mutex_dbg, library_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (cond_dbg, library_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (common_dbg, debugging)
 base of debug logging for the common library
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (config_dbg, common_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (configfile_dbg, config_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (configitem_dbg, config_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (configtyped_dbg, config_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (configlookup_dbg, config_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (interface_dbg, common_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (interfaceregistry_dbg, interface_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (pluginloader_dbg, common_dbg)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (plugins_dbg, debugging)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (logging, all)
 base of runtime logging always available
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (progress, logging)
 general application progress base
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (main, progress)
 progress log for the main starter
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (vault, progress)
 progress log for the vault layer
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (file, vault)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (mmap, vault)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (thread, vault)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (threads, thread)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (threadpool, thread)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (fileheader, vault)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (steam, progress)
 progress log for the steam layer
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (command, steam)
 progress log for steam-layer command dispatch
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (session, steam)
 progress log for session datastructure
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (builder, steam)
 progress log for the builder and build process
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (engine, steam)
 progress log for running the engine
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (play, steam)
 progress log for play- and render subsystem
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (stage, progress)
 progress log for the stage layer (GUI)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (library, progress)
 progress log for the support lib
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (resourcecollector, library)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (common, progress)
 progress log for the common lib
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (configsys, common)
 progress log, config subsystem
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (configfiles, configsys)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (configtyped, configsys)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (etd, common)
 progress log, "External Tree Description" data exchange
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (diff, etd)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (interface, common)
 progress log, interfaces
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (interfaceregistry, common)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (guifacade, common)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (subsystem, common)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (pluginloader, common)
 progress log, plugin loader
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (plugins, progress)
 progress log, external plugins
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (render, logging)
 base channel flag to track overall working of the render engine
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (config, logging)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (rules, config)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (query, config)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (resolver, config)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (test, logging)
 base flag for software testing
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (sync, logging)
 base flag for synchronisation logging
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (mutex_sync, sync)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (cond_sync, sync)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (memory, logging)
 base flag for memory related logging
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (proc_mem, memory)
 steam layer memory handling
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (mobject_mem, proc_mem)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (builder_mem, proc_mem)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (asset_mem, proc_mem)
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (events, all)
 event which drive the application are separately logged to reconstruct what happened/yielded to a problem
 
 NOBUG_CPP_DEFINE_FLAG_PARENT (gui_event, all)
 caveat joel, you need to implement this