# Development

- The rsyslog config data model
- Objects
  - Variables/Properties
  - Flat Elements
    - Global Parameters
    - Modules
    - Inputs
    - Rulesets
  - Hierarchical Elements
    - Execution Statements
    - Expression Evaluation
    - Control-of-Flow Statements
  - Note on Queue Objects
- Debugging
  - Debugging with tests
  - Memory debugging
    - Valgrind
    - Address sanitizer
- rsyslog code style
- Writing Rsyslog Output Plugins
  - Getting Started and Samples
  - Special Topics
    - Threading
    - Getting Message Data
    - Batching of Messages
    - Output Plugin Transaction Interface
  - Open Issues
    - Licensing
- The rsyslog queue object
  - Some definitions
  - Implementation Details
    - Disk-Assisted Mode
    - DA Run Mode Initialization
    - DA Run Mode Shutdown
    - Queue Destruction
- writing rsyslog tests
- Generic design of a syslogd

See also

Help with configuring/using `Rsyslog`:

- Mailing list - best route for general questions
- GitHub: rsyslog source project - detailed questions, reporting issues that are believed to be bugs with `Rsyslog`
- Stack Exchange (View, Ask) - experimental support from rsyslog community

See also

Contributing to `Rsyslog`:

- Source project: rsyslog project README.
- Documentation: rsyslog-doc project README

Copyright 2008-2020 Rainer Gerhards (Großrinderfeld), and Others.