如何阻止java util日志格式化我的数字

rob*_*jaj 11 java logging

我正在使用Java Util日志记录,每当我做这样的声明时

logger.log(Level.INFO, "print this number = {0}", number);
Run Code Online (Sandbox Code Playgroud)

它将我的号码从278487683165614格式化为278,487,683,165,614

在搜索日志时这非常烦人.

我可以阻止这样做吗?请帮忙.

Ale*_*oie 12

默认格式不是您想要的,请按以下方式更改:

{0,number,#}
Run Code Online (Sandbox Code Playgroud)

编辑:

在这里您可以获得 有关MessageFormatPattern的更多信息http://docs.oracle.com/javase/1.5.0/docs/api/java/text/MessageFormat.html

  • 没有使用`MesageFormat`,这对我来说很好.这个解决方案也可能比`String.valueOf`或`number.toString`更快/更有效,因为如果未达到处理程序的日志级别,记录器将不会打扰格式化数字.如果使用`String.valueOf`,则无论日志级别如何,都必须每次调用它. (2认同)

Yog*_*ngh 2

尝试以下方法之一(没有您的number对象类型的可见性):

  1. 使用String.valueOf()

    logger.log(Level.INFO, "print this number = {0}", String.valueOf(number));
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用Number.toString

    logger.log(Level.INFO, "print this number = {0}", number.toString);
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用NumberFormat.setGroupingUsed(false)

    NumberFormat formatter = new NumberFormat();     
    formatter.setGroupingUsed(false);
    logger.log(Level.INFO, "print this number = {0}", formatter.format(number));
    
    Run Code Online (Sandbox Code Playgroud)