[英]Multiple loggings in the same line as well as in different lines in same file in java
我是使用Log4j記錄器的新手,我想將某些記錄語句打印在同一行中。
范例:
log.debug(root.data);
if(root.left!=null)
log.debug("("+root.left.data);
else if(root.left==null)
log.debug("null");
if(root.right!=null)
log(root.right.data+")");
else if(root.right!=null)
log.debug("null)");
它會像這樣打印(3,
null)
但是我想這樣打印(3,空)。
但是我還有其他日志語句應該以正常行為打印
例:
void function()
{
log.debug("Entered First Function");
}
public static void Main()
{
log.debug("In Main Method");
}
在主要方法中
輸入第一個功能
您可以使用String.format(String, Object...)
和一對三元組 。 就像是,
log.debug(String.format("(%s, %s)", //
root.left == null ? "null" : root.left.data, //
root.right == null ? "null" : root.right.data));
或沒有像
if (root.right == null || root.left == null) {
if (root.left == null) {
if (root.right == null) {
log.debug("(null, null)");
} else {
log.debug(String.format("(null, %s)", root.right.data);
}
} else {
log.debug(String.format("(%s, null)", root.left.data);
}
} else {
log.debug(String.format("(%s, %s)", root.left.data, root.right.data);
}
正確的log4j習慣用法(1.2版)為
if (log.isDebugEnabled()) {
log.debug("(" + root.left.data + "," + root.right.data + ")");
}
它將正確處理空值。 在禁用調試級別的情況下,該條件將防止任何性能下降。
您可能想使用一些更現代的日志記錄api,例如slf4j,logback或log4j2。可讀性會更好:
log.debug("({},{})", root.left.data, root.right.data);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.