Allow log path specification
This commit is contained in:
parent
9c85f955e4
commit
a217db1945
@ -13,6 +13,22 @@ struct Config {
|
|||||||
|
|
||||||
/// The authentication tokens to use for monitoring of the service
|
/// The authentication tokens to use for monitoring of the service
|
||||||
let authenticationTokens: Set<String>
|
let authenticationTokens: Set<String>
|
||||||
|
|
||||||
|
/// The path to the folder where the metric logs are stored
|
||||||
|
///
|
||||||
|
/// If no path is provided, then a folder `logs` in the resources directory is created
|
||||||
|
/// If the path is relative, then it is assumed relative to the resources directory
|
||||||
|
let logPath: String?
|
||||||
|
|
||||||
|
func logURL(possiblyRelativeTo resourcesDirectory: URL) -> URL {
|
||||||
|
guard let logPath else {
|
||||||
|
return resourcesDirectory.appendingPathComponent("logs")
|
||||||
|
}
|
||||||
|
guard !logPath.hasPrefix("/") else {
|
||||||
|
return .init(fileURLWithPath: logPath)
|
||||||
|
}
|
||||||
|
return resourcesDirectory.appendingPathComponent(logPath)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension Config: Codable {
|
extension Config: Codable {
|
||||||
|
@ -24,7 +24,11 @@ enum ServerError: Error {
|
|||||||
// configures your application
|
// configures your application
|
||||||
public func configure(_ app: Application) throws {
|
public func configure(_ app: Application) throws {
|
||||||
let storageFolder = URL(fileURLWithPath: app.directory.resourcesDirectory)
|
let storageFolder = URL(fileURLWithPath: app.directory.resourcesDirectory)
|
||||||
let logFolder = storageFolder.appendingPathComponent("logs")
|
|
||||||
|
let configUrl = storageFolder.appendingPathComponent("config.json")
|
||||||
|
let config = try Config(loadFrom: configUrl)
|
||||||
|
|
||||||
|
let logFolder = config.logURL(possiblyRelativeTo: storageFolder)
|
||||||
|
|
||||||
let monitor = MetricObserver(logFileFolder: logFolder, logMetricId: "sesame.log")
|
let monitor = MetricObserver(logFileFolder: logFolder, logMetricId: "sesame.log")
|
||||||
MetricObserver.standard = monitor
|
MetricObserver.standard = monitor
|
||||||
@ -34,9 +38,6 @@ public func configure(_ app: Application) throws {
|
|||||||
_ = try await status.update(.initializing)
|
_ = try await status.update(.initializing)
|
||||||
}
|
}
|
||||||
|
|
||||||
let configUrl = storageFolder.appendingPathComponent("config.json")
|
|
||||||
let config = try Config(loadFrom: configUrl)
|
|
||||||
|
|
||||||
app.http.server.configuration.port = config.port
|
app.http.server.configuration.port = config.port
|
||||||
|
|
||||||
let keyFile = storageFolder.appendingPathComponent(config.keyFileName)
|
let keyFile = storageFolder.appendingPathComponent(config.keyFileName)
|
||||||
|
Loading…
Reference in New Issue
Block a user