【问题标题】:Log method enter and exit in ScalaScala中的日志方法进入和退出
【发布时间】:2020-04-10 17:26:57
【问题描述】:

有没有一种简单的方法可以在 Scala akka 中隐式记录方法的进入和退出点?

例如:

def method1(param1: String) {
//do something
}

应该像这样记录

2019-12-18 12:57:27,311 [method1:start] INFO  param1 = "INPUT STRING"
2019-12-18 12:57:27,311 [method1:end] INFO  param1

【问题讨论】:

标签: scala logging akka


【解决方案1】:

Akka 提供了在 Actor 之间跟踪消息的机制,但没有什么可以帮助记录此类标准方法。

您可以编写一个简单的方法来包装原始方法的主体:

def logInOut[T](f: => T) = {
  println("Enter") 
  val res = f  
  println("Leave")
  res
}

def method1(param1: String) = logInOut{
  println(param1)
}

这将打印出来

Enter
Hello
Leave

除此之外,您还需要编写宏并适当地注释方法。

【讨论】:

    猜你喜欢
    • 2021-11-23
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    相关资源
    最近更新 更多