开发者社区> 问答> 正文

字符串格式和记录原始类型-Java

我正在尝试编写一个包装Java中的logger类的类。我的日志记录功能具有以下形式:

public static void LogInfo(String fmt, Object... args) {
    String callerClass = walker.getCallerClass().getName();
    logger.info(String.format("[INFO] [%s] " + fmt, callerClass, args));
}

我遇到的问题是试图登录灵长类动物的种类,bool,int,double,等我看了一下“自动装箱”一点,认为这会为我,但它不是工作。当我尝试登录时,例如

int i = 123;
Log.LogInfo("log a number: %d", i);

我得到的错误是:

Exception in thread "main" java.util.IllegalFormatConversionException: d != [Ljava.lang.Object;

我通常不是Java程序员,所以不确定如何解决此问题。任何帮助将不胜感激!谢谢

问题来源:Stack Overflow

展开
收起
montos 2020-03-27 17:15:56 399 0
1 条回答
写回答
取消 提交回答
  • 尝试

    String callerClass = walker.getCallerClass().getName();
    logger.info(String.format("[INFO] [%s] ", callerClass) + String.format(fmt, args));
    

    问题在于,当使用callerClass和args调用String.format()时,Java Varargs创建一个包含字符串和数组的新数组,而String.format()无法显示该数组。 回答来源:Stack Overflow

    2020-03-27 17:16:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载