{"id":194,"date":"2012-06-20T13:57:17","date_gmt":"2012-06-20T13:57:17","guid":{"rendered":"http:\/\/codinuum.com\/en\/?p=194"},"modified":"2012-11-06T05:17:52","modified_gmt":"2012-11-06T05:17:52","slug":"volt","status":"publish","type":"post","link":"https:\/\/codinuum.com\/en\/software\/oss\/volt.html","title":{"rendered":"Volt &#8211; A Variant of Bolt OCaml Logging Tool"},"content":{"rendered":"<h1>Overview<\/h1>\n<p>This package provides a variant of <a title=\"Bolt\" href=\"http:\/\/bolt.x9c.fr\/\" target=\"_blank\">Bolt OCaml Logging Tool<\/a> called Volt. Volt offers the following features in addition to the original:<\/p>\n<ul>\n<li>pass filter concept,<\/li>\n<li>extended implicit syntax,<\/li>\n<li>more informative default logger name,<\/li>\n<li>suppression of unwanted evaluation of arguments, and<\/li>\n<li>additional keys for use by pattern and csv layouts.<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<h3>Pass filter concept<\/h3>\n<p>Each logger has an associated pass filter, which ensures that events will never be propagated to the ancestor loggers when the events do not satisfy the filter.<\/p>\n<h3>Extended implicit syntax<\/h3>\n<p><em>log_expr<\/em> ::= &#8230;<br \/>\n| <strong>FATAL_MSG<\/strong> (<em>string<\/em>|<em>ident<\/em>) <em>arguments attributes<\/em><br \/>\n| <strong>ERROR_MSG<\/strong> (<em>string<\/em>|<em>ident<\/em>) <em>arguments attributes<\/em><br \/>\n| <strong>WARN_MSG<\/strong> (<em>string<\/em>|<em>ident<\/em>) <em>arguments attributes<\/em><br \/>\n| <strong>INFO_MSG<\/strong> (<em>string<\/em>|<em>ident<\/em>) <em>arguments attributes<\/em><br \/>\n| <strong>DEBUG_MSG<\/strong> (<em>string<\/em>|<em>ident<\/em>) <em>arguments attributes<\/em><br \/>\n| <strong>TRACE_MSG<\/strong> (<em>string<\/em>|<em>ident<\/em>) <em>arguments attributes<\/em><br \/>\n<em>block_expr<\/em> ::=<br \/>\n| <strong>BEGIN_FATAL<\/strong> <em>expr_seq<\/em> <strong>END_FATAL<\/strong><br \/>\n| <strong>BEGIN_ERROR<\/strong> <em>expr_seq<\/em> <strong>END_ERROR<\/strong><br \/>\n| <strong>BEGIN_WARN<\/strong> <em>expr_seq<\/em> <strong>END_WARN<\/strong><br \/>\n| <strong>BEGIN_INFO<\/strong> <em>expr_seq<\/em> <strong>END_INFO<\/strong><br \/>\n| <strong>BEGIN_DEBUG<\/strong> <em>expr_seq<\/em> <strong>END_DEBUG<\/strong><br \/>\n| <strong>BEGIN_TRACE<\/strong> <em>expr_seq<\/em> <strong>END_TRACE<\/strong><\/p>\n<h3>More informative default logger name<\/h3>\n<p>In addition to a capitalized source file name without suffix, surrounding module names, class names, or function names are used to compute a logger name when no <strong>NAME<\/strong> attribute is provided.<\/p>\n<h3>Suppression of unwanted evaluation of arguments<\/h3>\n<p>Arguments in the <strong>LOG<\/strong> and <strong>*_MSG<\/strong> expressions are not evaluated when the defined logger does not record events.<\/p>\n<h3>Additional keys for use by the pattern and csv layouts<\/h3>\n<p>monthname &#8211; name of month e.g. January, February, &#8230;<br \/>\nmonthnm &#8211; abbreviated name of month e.g. Jan, Feb, &#8230;<\/p>\n<h1>Sources<\/h1>\n<p>The development sources are available from <a title=\"Volt\" href=\"https:\/\/github.com\/codinuum\/volt\/\" target=\"_blank\">GitHub<\/a>.<\/p>\n<h1>License<\/h1>\n<p>As in the original version, this tool is free software released under the LGPL v3.<\/p>\n<h1>Installation<\/h1>\n<p>See <a title=\"INSTALL\" href=\"https:\/\/github.com\/codinuum\/volt\/blob\/master\/INSTALL\" target=\"_blank\">INSTALL<\/a>.<\/p>\n<h1>Original<\/h1>\n<p>The original Bolt is Copyright\u00a0\u00a9 2009-2011 Xavier Clerc and released under the LGPL v3.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview This package provides a variant of Bolt OCaml Logging Tool called Volt. Volt offers the following features in addition to the original: pass filter concept, extended implicit syntax, more informative default logger name, suppression of unwanted evaluation of arguments, and additional keys for use by pattern and csv layouts.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[14],"class_list":["post-194","post","type-post","status-publish","format-standard","hentry","category-oss","tag-ocaml"],"_links":{"self":[{"href":"https:\/\/codinuum.com\/en\/wp-json\/wp\/v2\/posts\/194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codinuum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codinuum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codinuum.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/codinuum.com\/en\/wp-json\/wp\/v2\/comments?post=194"}],"version-history":[{"count":20,"href":"https:\/\/codinuum.com\/en\/wp-json\/wp\/v2\/posts\/194\/revisions"}],"predecessor-version":[{"id":208,"href":"https:\/\/codinuum.com\/en\/wp-json\/wp\/v2\/posts\/194\/revisions\/208"}],"wp:attachment":[{"href":"https:\/\/codinuum.com\/en\/wp-json\/wp\/v2\/media?parent=194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codinuum.com\/en\/wp-json\/wp\/v2\/categories?post=194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codinuum.com\/en\/wp-json\/wp\/v2\/tags?post=194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}