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
|
||||
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 {
|
||||
|
@ -24,7 +24,11 @@ enum ServerError: Error {
|
||||
// configures your application
|
||||
public func configure(_ app: Application) throws {
|
||||
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")
|
||||
MetricObserver.standard = monitor
|
||||
@ -34,9 +38,6 @@ public func configure(_ app: Application) throws {
|
||||
_ = try await status.update(.initializing)
|
||||
}
|
||||
|
||||
let configUrl = storageFolder.appendingPathComponent("config.json")
|
||||
let config = try Config(loadFrom: configUrl)
|
||||
|
||||
app.http.server.configuration.port = config.port
|
||||
|
||||
let keyFile = storageFolder.appendingPathComponent(config.keyFileName)
|
||||
|
Loading…
Reference in New Issue
Block a user