mirror of
https://github.com/apple/container.git
synced 2026-08-24 10:05:43 -05:00
CI observability enhancements. (#1193)
- Adds a a `--log-root` option to `swift system start`, propagating the value as `CONTAINER_LOG_ROOT` to services for logging to files instead of the OS log facility. This is not a "production" capability as it neither merges nor rotates logs. - Currently we don't collect logs on CI builds, and we don't have permission to run the `log` command there. The PR adds `--log-root` to the CI test phase, archives the results, and uploads the archive as an artifact. - Use FilePath from swift-system for the log root. Foundation URL is a bit of a footgun for filesystem paths, so unless we identify a showstopper, we should incrementally transition to this type everywhere except where we really need network URLs. - Output the hostname of the CI runner at the start of the test phase so we can identify runner-specific issues where they exist. - Fix formatting for log messages with multiple metadata items, and fix unstructured messages on instances that weren't found using `grep -r 'log\.' Sources`. - Adds command reference documentation for `--log-root`.
This commit is contained in:
@@ -199,14 +199,24 @@ public struct XPCServer: Sendable {
|
||||
let response = try await handler(message)
|
||||
xpc_connection_send_message(connection, response.underlying)
|
||||
} catch let error as ContainerizationError {
|
||||
log.error("route handler threw an error", metadata: ["route": "\(route)", "error": "\(error)"])
|
||||
log.error(
|
||||
"route handler threw an error",
|
||||
metadata: [
|
||||
"route": "\(route)",
|
||||
"error": "\(error)",
|
||||
])
|
||||
Self.replyWithError(
|
||||
connection: connection,
|
||||
object: object,
|
||||
err: error
|
||||
)
|
||||
} catch {
|
||||
log.error("route handler threw an error", metadata: ["route": "\(route)", "error": "\(error)"])
|
||||
log.error(
|
||||
"route handler threw an error",
|
||||
metadata: [
|
||||
"route": "\(route)",
|
||||
"error": "\(error)",
|
||||
])
|
||||
let message = XPCMessage(object: object)
|
||||
let reply = message.reply()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user