Pudu programming language
Menu
Package

@chrismichaelps / pudu-lang-log

Structured event logging for Pudu: message templates, enrichment, filtering, formatting, and sinks

0.1.0Apache-2.01

InstallClose

QuickStart.pudu

Pudu20 lines1.0 KB

GitHub ↗
1/** @Example.QuickStart.Program — a console logger with context and structure */2module QuickStart34import PuduLangLog.Configuration as Configuration5import PuduLangLog as Log6import PuduLangLog.Logger as Logger7import PuduLangLog.Sinks.Console as Console8import PuduLangLog.Value as Value910/// Writes a few events to the console and answers 0.11fn main() -> Int {12  let logger = Configuration.create().minimumLevel(Log.Debug).enrichWithProperty("Application", Value.text("QuickStart")).writeTo(Console.sink(Console.Options{..Console.defaults(), outputTemplate: "[\{Timestamp:HH:mm:ss\} \{Level:u3\}] \{Message:lj\} \{Properties\}\{NewLine\}\{Exception\}"})).createLogger()13  logger.information("Hello, \{Name\}!", [Value.text("world")])14  let orders = logger.forSource("QuickStart.Orders")15  orders.debug("Placing order \{@Order\}", [Value.structure("Order", [("Id", Value.int(42)), ("Items", Value.list([Value.text("tea"), Value.text("scones")]))])])16  orders.warning("Order \{OrderId\} took \{Elapsed:0.0\} ms", [Value.int(42), Value.float(1234.567)])17  Logger.close(&logger)18  019}20