c# - 其中包含字符串操作的调试语句的最佳实践是什么?

标签 c# java debugging log4net log4j

我经常发现自己在 log4net 和 log4j 的调试语句中添加连接字符串或使用字符串格式化程序,我是否应该用“if debug” block 将这些调试语句包围起来,以防止我自己通过处理这些参数来浪费资源,即使调试语句不会打印出来?

我假设检查 if (isDebug) 会比进行字符串操作更快更有效,但是当调试级别设置为高于调试级别时,它会导致程序运行不同(更快),这可能意味着当我写入日志时,生产中发生的同步问题不会发生。

最佳答案

对于 Java,您可以尝试 log5j .

log4j:

log.debug("This thing broke: " + foo + " due to bar: " + bar + " on this thing: " + car);

log5j:

log.debug("This thing broke: %s due to bar: %s on this thing: %s", foo, bar, car);
log.debug("Exception #%d", aThrowable, exceptionsCount++); 

关于c# - 其中包含字符串操作的调试语句的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/920458/

相关文章:

c# - 更改所有 Windows Forms 窗体上的设置

c# - 是否可以为 Visual Studio 2010 编写 Debugger Visualizer 来显示 64 位 .NET 程序?

asp.net - "breakpoint will not currently be hit"在 ASP.NET 中

delphi - 如何在调试器中显示 TStringList 的内容?

c# - 获取 DataBinder Item 的最大值

c# - 如何将数据从 LINQ to Entities 查询流式传输?

C#:解码 OAEP 填充奇怪问题时出错

即使调用中断后,Java 线程也不会停止

java - 对于较大卷集合,JDBC 更新失败?

java - 使用 Reactor Netty 配置 Spring Boot 以监听 2 个端口