Mar*_*cak 9 logging defensive-programming vala
我是Vala编程的新手,拥有Java和.NET的经验,但我还没有找到有关如何使用Vala进行日志记录的任何有用的东西.是否有任何有用的日志记录工具,如log4j或log4net,或者建议的方式登录Vala并扩展到几个日志级别,如错误,警告,调试和跟踪?那么像断言和合同那样的防御性编程呢?是否有任何建议的方法来进行防御性编程并获得具有堆栈跟踪和精确根本原因的最有用日志?谢谢你的建议.
cha*_*cus 23
记录
瓦拉内置了一些非常强大的日志记录功能,您可以使用debug(),message(),warning(),error(),和critical()作为快捷方式稍微更复杂的log()功能.所有都包含在基本(自动包含)GLib命名空间中.
如果要重定向日志输出或将不同类型的消息发送到不同的目标,则所需的一切都在GLib.Log命名空间中.您可能希望阅读glib文档以记录幕后发生的事情.
防守编程
Vala还包括对断言和合同的支持.简短的版本:assert()和assert_not_reached()断言的,并且requires()和ensures()方法签名的合同.有关详细信息,请参阅有关断言和合同编程的教程部分.
错误处理
Vala的错误处理有点奇怪:类似于异常,但不完全相同.关于错误处理的教程部分很好地介绍了基础知识,并且再次阅读关于错误的glib文档可能会有所帮助,以便更深入地了解幕后发生的事情.据我所知,没有办法从Vala错误中获取堆栈跟踪 - 只是一种类型和消息.
最佳实践
就最佳实践而言,我认为Vala与Java或C#类似,您已经知道的实践可以在一般意义上应用.我建议玩这些功能,以了解Vala中细节的外观.祝好运!
| 归档时间: |
|
| 查看次数: |
2716 次 |
| 最近记录: |