)]}'
{
  "commit": "26d5225a142057b6eb04cff9ba86173a6682b626",
  "tree": "8b5d8b35d0cd629d467b1e01200c2f12a950a588",
  "parents": [
    "cc078df2124306799c66786833746999259ea792"
  ],
  "author": {
    "name": "Serge Bazanski",
    "email": "serge@monogon.tech",
    "time": "Mon Feb 07 15:57:54 2022 +0100"
  },
  "committer": {
    "name": "Sergiusz Bazanski",
    "email": "serge@monogon.tech",
    "time": "Tue Feb 08 13:00:46 2022 +0000"
  },
  "message": "m/p/supervisor: implement sub-loggers\n\nThis permits logging from a runnable into a logtree sub-DN that is not\nbacked by an actualy child runnable. For example, \u0027root.foo\u0027 can request\na SubLogger with name \u0027bar\u0027 to emit logs into \u0027root.foo.bar\u0027.\n\nThis is in preparation for logging RPC calls within supervised\nrunnables, but can also come in handy in other situations where we\u0027d\nlike to log to separete \u0027topics\u0027 within a single runnable.\n\nThis breaks 1:1 correspondence between logtree DNs and supervisor DNs.\nAn alternative would be to introduce extra \u0027tags\u0027/\u0027topics\u0027 eg\nroot.foo:bar, but that would require encoding extra logic to the\nlogtree. However, that would perhaps allow us to introduce higher\ncardinality child loggers, with a logger per RPC. We\u0027ll have to consider\nthis at some later point.\n\nLet\u0027s see where this takes us, there\u0027s a chance we\u0027ll roll this\nback if it\u0027s too confusing from an UX point of view.\n\nChange-Id: Ibdee5c2b400bb8fce76b0a4f781914748793db0e\nReviewed-on: https://review.monogon.dev/c/monogon/+/536\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "20625225b7fde72732c89e1dc40f42b756163b2b",
      "old_mode": 33188,
      "old_path": "metropolis/pkg/supervisor/BUILD.bazel",
      "new_id": "fdac70fd695c212000b907bd7510d98418c340f0",
      "new_mode": 33188,
      "new_path": "metropolis/pkg/supervisor/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "77c2d025b896624bfc5456452eac7fffe01ccc0a",
      "old_mode": 33188,
      "old_path": "metropolis/pkg/supervisor/supervisor.go",
      "new_id": "ef7b909d22efefd59ffaa3546747823e22e21b24",
      "new_mode": 33188,
      "new_path": "metropolis/pkg/supervisor/supervisor.go"
    },
    {
      "type": "modify",
      "old_id": "a3bf5e43fc2f51373bb2791d18a953dbe739383f",
      "old_mode": 33188,
      "old_path": "metropolis/pkg/supervisor/supervisor_node.go",
      "new_id": "4fb2ddb565f0038708c287975f66c5f6c30915ad",
      "new_mode": 33188,
      "new_path": "metropolis/pkg/supervisor/supervisor_node.go"
    },
    {
      "type": "modify",
      "old_id": "7f2ffa4f3fe0c90608ded6cbb12481af7612afac",
      "old_mode": 33188,
      "old_path": "metropolis/pkg/supervisor/supervisor_test.go",
      "new_id": "a735de435f6fe56e250a83f6780f5e96981de158",
      "new_mode": 33188,
      "new_path": "metropolis/pkg/supervisor/supervisor_test.go"
    }
  ]
}
