libadc-cxx 1.0.0
Structured logging for scientific computing
Loading...
Searching...
No Matches
Public Member Functions | List of all members
adc::file_plugin Class Reference

File output publisher_api implementation. This plugin generates writes each message to the configured file, with <json></json> delimiters surrounding it. The output directory is "." by default, but may be overriden with a full path defined in env("ADC_FILE_PLUGIN_DIRECTORY"). The file name is adc.file_plugin.log by default, and may be overridden with a path name in env("ADC_FILE_PLUGIN_FILE"). The file is overwritten when the file_plugin is created, unless env("ADC_FILE_PLUGIN_APPEND") is "true". Debugging output is enabled if env("ADC_FILE_PLUGIN_DEBUG") is a number greater than 0. More...

Inheritance diagram for adc::file_plugin:
Inheritance graph
[legend]
Collaboration diagram for adc::file_plugin:
Collaboration graph
[legend]

Public Member Functions

 file_plugin ()
 
int publish (std::shared_ptr< builder_api > b)
 Publish the content of the builder.
 
int config (const std::map< std::string, std::string > &m)
 Configure the plugin with the options given.
 
int config (const std::map< std::string, std::string > &m, string_view env_prefix)
 Configure the plugin with the options given and the corresponding environment variables.
 
const std::map< const std::string, const std::string > & get_option_defaults ()
 Look up the settable options and their defaults.
 
int initialize ()
 Ready the plugin to publish following the configuration options set or defaulted.
 
void finalize ()
 Stop publishing and release any resources held for managing publication.
 
void pause ()
 Pause publishing until a call to resume. Duplicate calls are allowed.
 
void resume ()
 Resume publishing Duplicate calls are allowed.
 
string_view name () const
 
string_view version () const
 
 ~file_plugin ()
 

Detailed Description

File output publisher_api implementation. This plugin generates writes each message to the configured file, with <json></json> delimiters surrounding it. The output directory is "." by default, but may be overriden with a full path defined in env("ADC_FILE_PLUGIN_DIRECTORY"). The file name is adc.file_plugin.log by default, and may be overridden with a path name in env("ADC_FILE_PLUGIN_FILE"). The file is overwritten when the file_plugin is created, unless env("ADC_FILE_PLUGIN_APPEND") is "true". Debugging output is enabled if env("ADC_FILE_PLUGIN_DEBUG") is a number greater than 0.

Multiple independent file publishers may be created; if the same file name and directory are used for distinct instances, output file content is undefined.

Definition at line 32 of file file.ipp.

Constructor & Destructor Documentation

◆ file_plugin()

adc::file_plugin::file_plugin ( )
inline

Definition at line 100 of file file.ipp.

◆ ~file_plugin()

adc::file_plugin::~file_plugin ( )
inline

Definition at line 201 of file file.ipp.

Member Function Documentation

◆ publish()

int adc::file_plugin::publish ( std::shared_ptr< builder_api b)
inlinevirtual

Publish the content of the builder.

Parameters
bconverted to a single json object and published

Implements adc::publisher_api.

Definition at line 103 of file file.ipp.

◆ config() [1/2]

int adc::file_plugin::config ( const std::map< std::string, std::string > &  m)
inlinevirtual

Configure the plugin with the options given.

Parameters
ma map with keys documented in the plugin-specific header.

For plugin QQQ, Environment variables ADC_QQQ_PLUGIN_* will override the source code default for any key not defined in m. Here QQQ is the uppercase version of the plugin name.

Implements adc::publisher_api.

Definition at line 124 of file file.ipp.

◆ config() [2/2]

int adc::file_plugin::config ( const std::map< std::string, std::string > &  m,
string_view  env_prefix 
)
inlinevirtual

Configure the plugin with the options given and the corresponding environment variables.

Parameters
ma map with keys documented in the plugin-specific header.
env_prefixis prepended to the expected keys for the plugin and values found with getenv that match are used, overriding elements of m. Typically, env_prefix will be PPP_ADC_QQQ_PLUGIN_ if application PPP wants to override the defaults of plugin QQQ. Here QQQ is the uppercase version of the plugin name.

Implements adc::publisher_api.

Definition at line 128 of file file.ipp.

◆ get_option_defaults()

const std::map< const std::string, const std::string > & adc::file_plugin::get_option_defaults ( )
inlinevirtual

Look up the settable options and their defaults.

Some plugins without options will return an empty map.

Implements adc::publisher_api.

Definition at line 136 of file file.ipp.

◆ initialize()

int adc::file_plugin::initialize ( )
inlinevirtual

Ready the plugin to publish following the configuration options set or defaulted.

Implements adc::publisher_api.

Definition at line 140 of file file.ipp.

◆ finalize()

void adc::file_plugin::finalize ( )
inlinevirtual

Stop publishing and release any resources held for managing publication.

Implements adc::publisher_api.

Definition at line 172 of file file.ipp.

◆ pause()

void adc::file_plugin::pause ( )
inlinevirtual

Pause publishing until a call to resume. Duplicate calls are allowed.

Implements adc::publisher_api.

Definition at line 185 of file file.ipp.

◆ resume()

void adc::file_plugin::resume ( )
inlinevirtual

Resume publishing Duplicate calls are allowed.

Implements adc::publisher_api.

Definition at line 189 of file file.ipp.

◆ name()

string_view adc::file_plugin::name ( ) const
inlinevirtual
Returns
the name of the plugin

Implements adc::publisher_api.

Definition at line 193 of file file.ipp.

◆ version()

string_view adc::file_plugin::version ( ) const
inlinevirtual
Returns
the version of the plugin (should follow semantic versioning practices)

Implements adc::publisher_api.

Definition at line 197 of file file.ipp.


The documentation for this class was generated from the following file: