簡體   English   中英

如何通過配置文件將線程和類名添加到 Java Util Logging API?

[英]How can I add thread and class name to Java Util Logging API via configuration files?

如果我想在 Java Util Logging API 中顯示線程、類和方法名稱,可以在 logging.properties 文件中進行配置,還是需要修改代碼?

“顯示線程”是指線程名稱還是線程 ID? 更標准的格式化程序只會包含日志記錄提供的內容,即線程 ID 而不是名稱。 正如@user207421 所說, SimpleFormatter 不包括所有 LogRecord 屬性。

java.util.logging.XMLFormatter包括線程 ID、源類和方法名稱。 這可以用於文件輸出,然后對其進行樣式設置以使其看起來不錯。

如果您對 Angus-Mail 或 JavaMail 有依賴關系,它們有com.sun.mail.util.logging.CompactFormatter可以輸出線程 ID 和源(simpleclassname.methodname)。 但是,此格式化程序將隱藏 SimpleFormatter 提供的一些附加信息。

您可能需要找到第 3 方格式化程序或編寫自己的格式化程序來顯示您需要的內容。

根據文檔,您無法獲取線程名稱,但您可以通過配置獲取日志,如下所示: 可以通過在 java.util.logging.SimpleFormatter.format 屬性中指定格式字符串來自定義格式。 給定的 LogRecord 將被格式化,就好像通過調用:

String.format(format, date, source, logger, level, message, thrown);

論據是:

  1. format - java.util.logging.SimpleFormatter.format 屬性中指定的 java.util.Formatter 格式字符串或默認格式。
  2. date - 一個 Date 對象,表示日志記錄的事件時間。
  3. source - 表示調用者的字符串(如果可用); 否則,記錄器的名稱。
  4. logger - 記錄器的名稱。
  5. level - 日志級別。
  6. message - 從 Formatter.formatMessage(LogRecord) 方法返回的格式化日志消息。 它使用 java.text 格式,不使用 java.util.Formatter 格式參數。
  7. throw - 一個字符串,表示與日志記錄關聯的 throwable 及其以換行符開頭的回溯(如果有); 否則為空字符串。 有關更多詳細信息,請參閱https://docs.oracle.com/javase/7/docs/api/java/util/logging/SimpleFormatter.html#format(java.util.logging.LogRecord)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM