Skip to content

Instantly share code, notes, and snippets.

@terjokhin
Created November 4, 2020 13:52
Show Gist options
  • Save terjokhin/cfd1b02d6bb2e632b8337aaec4869d94 to your computer and use it in GitHub Desktop.
Save terjokhin/cfd1b02d6bb2e632b8337aaec4869d94 to your computer and use it in GitHub Desktop.
object Loggers {
final val Welcome = "welcome"
final val Messages = "messages"
final val Users = "messages"
type MessagesLogging[F[_]] = Logging[F] @Id(Welcome)
type UsersLogging[F[_]] = Logging[F] @Id(Users)
type WelcomeLogging[F[_]] = Logging[F] @Id(Messages)
def Module[F[_]: TagK: Sync] = new ModuleDef {
make[Logs[F, F]].from(Logs.sync[F, F])
make[WelcomeLogging[F]].named(Welcome).fromEffect { logs: Logs[F, F] =>
logs.byName(Welcome)
}
make[MessagesLogging[F]].named(Messages).fromEffect { logs: Logs[F, F] =>
logs.byName(Messages)
}
make[UsersLogging[F]].named(Users).fromEffect { logs: Logs[F, F] =>
logs.byName(Users)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment