Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala日志:Log4cats含糊不清_Scala_Logging_Implicit_Scala Cats_Ambiguity - Fatal编程技术网

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

我是个新手,我想测试用于管理scala日志的log4cats库。我似乎无法理解背后的直觉,我尝试在文档中测试示例,但似乎无法使其正常工作

以下是我尝试过的:

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
的工作原理,我建议您先熟悉它。