java 同一文件中的同一行和不同行中的多个日志记录
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,null).
但我还有其他日志语句应该以正常行为打印
示例:
void function()
{
log.debug("Entered First Function");
}
public static void Main()
{
log.debug("In Main Method");
}
在主要方法中
进入第一个函数
您可以使用 String.format(String, Object...)
and a pair of ternaries。像,
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 或 log4j 2。可读性会好得多:
log.debug("({},{})", root.left.data, root.right.data);
我刚开始使用 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,null).
但我还有其他日志语句应该以正常行为打印
示例:
void function()
{
log.debug("Entered First Function");
}
public static void Main()
{
log.debug("In Main Method");
}
在主要方法中
进入第一个函数
您可以使用 String.format(String, Object...)
and a pair of ternaries。像,
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 或 log4j 2。可读性会好得多:
log.debug("({},{})", root.left.data, root.right.data);