Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Document the workings. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
3fe2180ca0e721581af31d9167fac2dd |
User & Date: | llmII 2019-07-11 13:52:28 |
Context
2019-07-11 14:43 | Fixing up the README for fossil's brand of MarkDown. | check-in: 64435ecf59 user: llmII tags: trunk | |
2019-07-11 13:52 | Document the workings. | check-in: 3fe2180ca0 user: llmII tags: trunk | |
2019-07-11 12:27 | Adding a license, copyright, and bare rockspec. | check-in: 8b09c6ccc7 user: llmII tags: trunk | |
Changes
Changes to README.md.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | ## Overview lua-simplelog is a logging library that aims to be performant, simple, and capable. It exposes a log mannager which in turn is used to open up log files in the log directory. The loggers keep up with dates and roll to a new file when the date changes. It provides for multiple levels out of the box. Each log can use either the default write settings, or their own. Write settings allow for telling the logger which level's are enabled for which output. ## Future - Perhaps allow dynamically adding levels and/or writers? ## Usage local log_config = { -- this directory must exist! dir = '/tmp/simplelog', daemonized = true, debug_info = true, logs = { default = { levels = { write = 'info', print = 'info' } }, log1 = { levels = { write = 'info', print = 'trace' } } } } local log_manager = require 'simplelog' local uses_default = log_manager:open 'loga' local log1 = log_manager:open 'log1' -- should not print or write to file uses_default:trace 'This is a message' -- should print and write to file uses_default:error('Error %s', 1000) -- should print but not write to file log1:trace 'This is a message' -- should print and write to file log1:error 'This is a message too' log_manager:close_all() ## Documentation ### Levels These are the available log levels in order of importance with highest importance being listed last. - trace - debug - info - warn - error - fatal ### Log manager This is what's returned when you import the module. Once you initialize a manager with a config like `local manager = (require 'simplelog')(cfg_table)` the following functions become avaliable: Functions: - open(string name) - opens a log file with the name given and creates said file under the directory given in the configuration. Returns the log file object. - close(string name) - closes a previously opened log file by name - closeall() - closes all log files managed by this manager **Configuration is explained below:** Excerpt from example: dir = '/tmp/simplelog', daemonized = true, debug_info = true, logs = { default = { levels = { write = 'info', print = 'info' } }, log1 = { levels = { write = 'info', print = 'trace' } } } } The table key `dir` is required and is the directory in which log files will be created. The `logs.default` is also required. The rest is optional. Manager configuration: - dir : The directory to which log files will be written. - daemonized : Used to determine if it is neccessary to disable stdout/stderr logging. - debug_info: If enabled, the logger will include source line info in the output. Log Configuration: Each log can be configured to only write log lines above a certain level. If a log, specified by name in the config, exists, then that configuration is used for determining when to write information, otherwise the default. Currently logs only support writing to files (`write`), or writing to the screen (`print`). Each log config is found under the configuration table at `config.logs` and `config.logs.default` must exist. Each log's configuration follows the same format as `config.logs.default`. Each log config has a `levels` table and must have 2 keys present (one for each currently supported write situation). These keys simply must be set to one of the log levels defined above and only levels equal or greater in importance in relation to that log will be logged. Look to the excerpt for a demonstration. The levels per output can be different. ### Log Object Each log object has a method for each level defined earlier. Accessing anything other than those methods is unsupported and may cause issues. If a level isn't supposed to write out, then the level is aliased basically to nop. |
Changes to simplelog.lua.
︙ | ︙ | |||
142 143 144 145 146 147 148 | logfile_base.__index = logfile_base logfile_base.__gc = logfile_base.close local logfile_class = setmetatable( { __init = function(self, config, name) | | | 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | logfile_base.__index = logfile_base logfile_base.__gc = logfile_base.close local logfile_class = setmetatable( { __init = function(self, config, name) self.conf = config.logs[name] or config.logs.default self.name, self.dir = name, config.dir self.daemonized, self.debug_info = config.daemonized, config.debug_info for level, _ in pairs(log_levels) do local files = {} local srclinegen = self.debug_info and getsrclineinfo or snop self[level] = nop |
︙ | ︙ |