<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### [日志會給出正在運行的程序的各種信息。](https://lingcoder.gitee.io/onjava8/#/book/16-Validating-Your-Code?id=%e6%97%a5%e5%bf%97%e4%bc%9a%e7%bb%99%e5%87%ba%e6%ad%a3%e5%9c%a8%e8%bf%90%e8%a1%8c%e7%9a%84%e7%a8%8b%e5%ba%8f%e7%9a%84%e5%90%84%e7%a7%8d%e4%bf%a1%e6%81%af%e3%80%82) 在調試程序中,日志可以是普通狀態數據,用于顯示程序運行過程(例如,安裝程序可能會記錄安裝過程中采取的步驟,存儲文件的目錄,程序的啟動值等)。 在調試期間,日志也能帶來好處。 如果沒有日志,你可能會嘗試通過插入**println()**語句來打印出程序的行為。 本書中的一些例子使用了這種技術,并且在沒有調試器的情況下(下文中很快就會介紹這樣一個主題),它就是你唯一的工具。 但是,一旦你確定程序正常運行,你可能會將**println()**語句注釋或者刪除。 然而,如果你遇到更多錯誤,你可能又需要運行它們。因此,如果能夠只在需要時輕松啟用輸出程序狀態就好多了。 程序員在日志包可供使用之前,都只能依賴 Java 編譯器移除未調用的代碼。 如果**debug**是一個 \*\*static final boolean \*\*,你就可以這么寫: ~~~ if(debug) { System.out.println("Debug info"); } ~~~ 然后,當 \*\*debug \*\*為 \*\*false \*\*時,編譯器將移除大括號內的代碼。 因此,未調用的代碼不會對運行時產生影響。 使用這種方法,你可以在整個程序中放置跟蹤代碼,并輕松啟用和關閉它。 但是,該技術的一個缺點是你必須重新編譯代碼才能啟用和關閉跟蹤語句。因此,通過更改配置文件來修改日志屬性,從而起到啟用跟蹤語句但不用重新編譯程序會更方便。 業內普遍認為標準 Java 發行版本中的日志包**(java.util.logging)**的設計相當糟糕。 大多數人會選擇其他的替代日志包。如*Simple Logging Facade for Java(SLF4J)*,它為多個日志框架提供了一個封裝好的調用方式,這些日志框架包括**java.util.logging**,**logback**和 \*\*log4j \*\*。 SLF4J 允許用戶在部署時插入所需的日志框架。 SLF4J 提供了一個復雜的工具來報告程序的信息,它的效率與前面示例中的技術幾乎相同。 對于非常簡單的信息日志記錄,你可以執行以下操作: ~~~ // validating/SLF4JLogging.java import org.slf4j.*; public class SLF4JLogging { private static Logger log = LoggerFactory.getLogger(SLF4JLogging.class); public static void main(String[] args) { log.info("hello logging"); } } /* Output: 2017-05-09T06:07:53.418 [main] INFO SLF4JLogging - hello logging */ ~~~ 日志輸出中的格式和信息,甚至輸出是否正常或“錯誤”都取決于 SLF4J 所連接的后端程序包是怎樣實現的。 在上面的示例中,它連接到的是**logback**庫(通過本書的**build.gradle**文件),并顯示為標準輸出。 如果我們修改**build.gradle**從而使用內置在 JDK 中的日志包作為后端,則輸出顯示為錯誤輸出,如下所示: **Aug 16, 2016 5![40](https://github.githubassets.com/images/icons/emoji/40.png)31 PM InfoLogging main****INFO: hello logging** 日志系統會檢測日志消息處所在的類名和方法名。 但它不能保證這些名稱是正確的,所以不要糾結于其準確性。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看