
QuickStart.pudu
Pudu20 lines1.0 KB
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 Value91011fn 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