bus/logger/logger.idl
package logger
struct LogLevel
level: int32
end
struct TimePoint
ns: uint64
end
struct LogMessage
source: str
level: LogLevel
category: str
location: str // format: "<machine id>:<process id>"
message: str
id: uint32
date: TimePoint
systemDate: TimePoint
end
interface LogProvider
fn setVerbosity(level: LogLevel) //uid:100
fn setCategory(category: str, level: LogLevel) //uid:101
fn clearAndSet(filters: Map<str,LogLevel>) //uid:102
end
interface LogListener
fn setLevel(level: LogLevel)
fn addFilter(category: str, level: LogLevel)
fn clearFilters()
sig onLogMessage(log: LogMessage)
sig onLogMessages(logs: Vec<LogMessage>)
sig onLogMessagesWithBacklog(logs: Vec<LogMessage>)
prop logLevel(level: LogLevel)
end
interface LogManager
fn log(messages: Vec<LogMessage>) //uid:100
fn createListener() -> LogListener //uid:101
fn getListener() -> LogListener //uid:102
fn addProvider(source: LogProvider) -> int32 //uid:103
fn removeProvider(sourceID: int32) //uid:104
end