Scala 如何使用日志编写清晰的代码?
日志记录使我的“漂亮”简洁的短代码变得杂乱无章。 而不是简单的Scala 如何使用日志编写清晰的代码?,scala,oop,haskell,functional-programming,Scala,Oop,Haskell,Functional Programming,日志记录使我的“漂亮”简洁的短代码变得杂乱无章。 而不是简单的 def mymethod = dosomething // scala 我的代码还包含所有这些讨厌的日志语句,我必须立即在mymethod中添加新行和大括号。 现在我不喜欢AOP它只会让代码变得清晰-->不清晰。 不管怎样,要克服这一切?当简单的代码变得不那么简单时,我就有了,但我还需要日志记录。救命啊 如何使这段代码清晰、简单、简短,并使用日志记录?通常用于: def mymethod = dosomething.tap(x =
def mymethod = dosomething // scala
我的代码还包含所有这些讨厌的日志语句,我必须立即在mymethod
中添加新行和大括号。
现在我不喜欢AOP
它只会让代码变得清晰-->不清晰。
不管怎样,要克服这一切?当简单的代码变得不那么简单时,我就有了,但我还需要日志记录。救命啊
如何使这段代码清晰、简单、简短,并使用日志记录?通常用于:
def mymethod = dosomething.tap(x => log.info(s"I've done ... and got $x"))
如果您需要对任何方法执行此操作,那么有一个虚拟化的scala,它允许重载一些语言概念,我想包括方法调用。另外,有人可能会建议查看宏,但我没有足够的能力做出这种假设。函数式编程中的一种典型方法是添加一个高阶日志组合器
log :: IO a -> String -> IO a
log f s = do
v <- f
print ("My message: " ++ s)
return v
log::IO a->String->IO a
log f s=do
v有点不对劲。。返回x
,这是一种表达简单问题的肮脏方式。这与haskell有什么关系?