 public struct Log {
 
 	/// Filter level
-	static var logLevel: LogLevel = LogLevel.ALL
+	public static var logLevel: LogLevel = LogLevel.WARN
 	/// Log destination
-	static var logDestination: LogDestination = LogDestination.STDOUT
+	public static var logDestination: LogDestination = LogDestination.STDOUT
 
 	/// Timer singleton for performance measurement
-	static var timeMark: DispatchTime?
+	public static var timeMark: DispatchTime?
 
 	/// Configure the logger
 	///
 	/// - Parameters:
 	///   - level: Filter level for output
 	///   - destination: Log destination
-	public static func configure(level: LogLevel, destination: LogDestination) {
+	public static func configure(level: LogLevel, destination: LogDestination = .STDOUT) {
 		logLevel = level
 		logDestination = destination
 	}

	/// Debug level log message
	///
	/// - Parameter message: description as a String optional
 	@inline(__always) public static func debug(_ message: String?) {
		if logLevel.rawValue <= LogLevel.DEBUG.rawValue {
			if message == nil {
				output("DEBUG: [empty optional]")
			} else {
				output("DEBUG: \(message!)")
			}
		}
	}

	/// Debug level log message
	///
	/// - Parameter object: Any optional to print as a debug string
	@inline(__always) public static func debug(_ object: Any?, file: String = #file, function: String = #function, line: Int = #line) {
		if logLevel.rawValue <= LogLevel.DEBUG.rawValue {
			if object == nil {
				output("DEBUG:[\(file.fileName).\(function):\(line)] empty optional")
			} else {
				output("DEBUG:[\(file.fileName).\(function):\(line)] \(object.debugDescription)")
			}
		}
	}
