Scala日志:Log4cats含糊不清
我是个新手,我想测试用于管理scala日志的log4cats库。我似乎无法理解背后的直觉,我尝试在文档中测试示例,但似乎无法使其正常工作 以下是我尝试过的:Scala日志:Log4cats含糊不清,scala,logging,implicit,scala-cats,ambiguity,Scala,Logging,Implicit,Scala Cats,Ambiguity,我是个新手,我想测试用于管理scala日志的log4cats库。我似乎无法理解背后的直觉,我尝试在文档中测试示例,但似乎无法使其正常工作 以下是我尝试过的: import io.chrisdavenport.log4cats.Logger import io.chrisdavenport.log4cats.slf4j.Slf4jLogger import cats.effect.{ExitCode, IO, IOApp, Sync} import cats.implicits._ object
import io.chrisdavenport.log4cats.Logger
import io.chrisdavenport.log4cats.slf4j.Slf4jLogger
import cats.effect.{ExitCode, IO, IOApp, Sync}
import cats.implicits._
object Thing extends IOApp {
// Impure But What 90% of Folks I know do with log4s
implicit def unsafeLogger[F[_]: Sync] = Slf4jLogger.getLogger[F]
// Arbitrary Local Function Declaration
def doSomething[F[_]: Sync]: F[Unit] =
Logger[F].info("Logging Start Something") *>
Sync[F].delay(println("I could be doing anything")).attempt.flatMap {
case Left(e) => Logger[F].error(e)("Something Went Wrong")
case Right(_) => Sync[F].pure(())
}
override def run(args: List[String]): IO[ExitCode] = {
//implicitly[Sync[IO]]
doSomething
IO(ExitCode.Success)
}
}
我得到了一个错误:对cats.effect.Sync[F]类型进行发散隐式扩展。你可能想做这个
doSomenthing[IO].as(ExitCode.Success)
,这表明你不熟悉IO
的工作原理,我建议你先熟悉一下。你可能想做这个doSomenthing[IO].as(ExitCode.Success)
这表明您不熟悉IO
的工作原理,我建议您先熟悉它。