Changes between Version 5 and Version 6 of LoggingRequirements
- Timestamp:
- Dec 12, 2010, 10:05:50 AM (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
LoggingRequirements
v5 v6 5 5 6 6 == Logging Sources == 7 * Each message should be associated with a source. This may be a program component (e.g. "authoritative server", "recursive server") or sub-component (e.g. "DNS Library"). Alternatively it may be cross-component (e.g. "Query trace") 7 * Each message should be associated with up to two sources: 8 * One source should be the name of the component (e.g. "DNS library") 9 * One source should be the program in which the component is running (e.g. "recursive server") 10 * The sources should be hierarchical: a change affecting the program source applies to all contained components unless overridden at the component level. 11 12 (Note that this means that a component can appear under several guises, e.g. the DNS library is a component in its own right, but may appear in both the authoritative server an recursive server.) 13 8 14 * It should be possible to enable or disable logging messages by source; by default all sources should be enabled. 9 * It should be possible to enable or disable the logging from a query source s via the command interface.15 * It should be possible to enable or disable the logging from a query source via configuration options. 10 16 11 17 == Logging Severities == … … 16 22 * INFORMATION: an event of note has occurred, e.g. the server has started. 17 23 * DEBUG: a message only of use to developers. 18 * It must be possible to set a filter such that only messages of a given severity and above are output (where DEBUG < INFO < WARNING < ERROR < CRITICAL). 19 * Setting of the severity filter should be possible be via the command interface. 24 * It must be possible to set a filter on a source such that only messages of a given severity and above are output (where DEBUG < INFO < WARNING < ERROR < CRITICAL). 25 * It should be possible to set a filter on a program/component combination (e.g. the DNS library only outputs critical messages except when running in the authoritative server where it output debug messages.) 26 * Setting of the severity filter should be possible be via a configuration option. 27 20 28 21 29 == Debug Levels == … … 30 38 * syslog 31 39 * user-specified file 32 * It should be possible to specify a maximum size for the file after which the logging stops or the file is rotated 40 * It should be possible to specify a maximum size for the file after which the logging stops or the file is rotated. (The operation should happen before the set file size is exceeded, not after.) 33 41 * If the rotation option is specified, it should be possible to specify the number of versions of a file retained. 34 42 * It should be possible to request a file rotation at any time. 43 * It should be possible to schedule regular file rotations. 44 * It should be possible to set a pattern for the name of rotated files (e.g. /var/log/bind10/bind10-%Y%m%d.log) 35 45 * named socket 46 * For each destination, it should be possible to set up a secondary output destination: 47 * If a write to the primary destination fails, output should be sent to the secondary destination. 48 * Where the primary destination is a user-specified file, the following should apply: 49 * Is the failure is due to a disk full error, the system must attempt to repeat the output of the message for a configurable number of times with a configurable delay between (default: one repeat after a pause of one second) before routing to the secondary destination. 50 * Messages arriving in the meantime should be buffered; if any are lost because of buffer overflow, a note should be made and a message generated and written to the log when it is possible to do so. 51 * It should be configurable as to whether in the case of an error output is: 52 * Permanently re-routed to the secondary destination. 53 * Re-routed for a specified period of time before the primary is re-tried 36 54 * It should be possible to send a message to more than one destination. 55 * A single destination should be able to receive messages from more than one source. 37 56 * It should be possible to set logging destinations via the command interface. 38 57 * During program start-up, messages should be routed to stderr until the logging is initialized. … … 45 64 * Every log message should have a unique identification which should be included in the message output 46 65 * It should be possible to (easily) change the language of messages 66 67 == Notes == 68 === Debug Levels === 69 ''To be supplied: guidance on use of debug levels''