Key Value

Check report/import-and-dependencies Import And Dependencies for prerequisites. Use trace core method to render key-value pairs to a console and to generated web report. Groovy trace("trace label", [k1: "v1", k2: "v2"]) trace("another trace label", "k3", "v3", "k4", "v4") Java trace("trace label", map("k1", "v1", "k2", "v2")); trace("another trace label", "k3", "v3", "k4", "v4"); [tracing] trace label k1: "v1" k2: "v2" [tracing] another trace label k3: "v3" k4: "v4"

Object Properties

Use trace and properties combo to trace object properties: def account = new Account("acc1", "my account", 100) trace("my account", properties(account)) [tracing] my account {"id": "acc1", "money": {"dollars": 100}, "name": "my account"}

Multiple Objects As Table

Use trace and propertiesTable combo to trace object properties: def game1 = new GameConfig("super game", Paths.get("/games/superA")) game1.registerAchievement("chapter1", "Chapter One", "complete chapter one") game1.registerAchievement("boss1", "Giant Rat", "defeat giant rat") def game2 = new GameConfig("duper game", Paths.get("/games/duperA")) game2.registerAchievement("chapter2", "Chapter Two", "complete chapter two") game2.registerAchievement("boss2", "Giant Mouse", "defeat giant mouse") trace("games", propertiesTable([game1, game2])) [tracing] games achievements │ gameName │ location [ │ "super game" │ /games/superA {"description": "complete chapter one", "id": "chapter1", "name": "Chapter One"}, │ │ {"description": "defeat giant rat", "id": "boss1", "name": "Giant Rat"} │ │ ] │ │ │ │ [ │ "duper game" │ /games/duperA {"description": "complete chapter two", "id": "chapter2", "name": "Chapter Two"}, │ │ {"description": "defeat giant mouse", "id": "boss2", "name": "Giant Mouse"} │ │ ] │ │