Skip to content

Instantly share code, notes, and snippets.

@nuclearace
Created September 4, 2015 14:40
Show Gist options
  • Select an option

  • Save nuclearace/120907f56abbfc8b369b to your computer and use it in GitHub Desktop.

Select an option

Save nuclearace/120907f56abbfc8b369b to your computer and use it in GitHub Desktop.
Logging
trait Logger {
def log(msg: String)(implicit logType: String) = {
println(s"${logType}: ${msg}")
}
}
object DefaultLogger extends Logger
class SomeClass {
implicit val logType = "SomeClass"
DefaultLogger log "Creating SomeClass"
}
object Main extends App {
val s = new SomeClass
}
protocol Logger {
func log(msg: String, logType: String)
}
extension Logger {
func log(msg: String, logType: String) {
print("\(logType): \(msg)")
}
}
struct DefaultLogger: Logger {
}
class SomeClass {
let logType = "SomeClass"
init() {
defLogger.log("Creating SomeClass", logType: "SomeClass")
}
}
var defLogger = DefaultLogger()
let a = SomeClass()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment