2017-05-30 161 views
0

問題我沒有得到任何輸出到Gamebot.log文件,但我確實得到它在控制檯上,我不知道它爲什麼不輸出到日誌。請幫忙。使用Log4j和slf4j在日誌文件中沒有輸出

代碼
Log4j的配置文件

<?xml version="1.0" encoding="UTF-8"?> 
    <Configuration status="DEBUG" name="GameBot"> 
     <Appenders> 
      <Console name="Console" target="SYSTEM_OUT"> 
       <PatternLayout pattern="%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n" /> 
      </Console> 
      <File name="MyFile" fileName="Gamebot.log" immediateFlush="false" append="false"> 
       <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
      </File> 
     </Appenders> 
     <Loggers> 
      <Root level="DEBUG"> 
       <AppenderRef ref="MyFile" /> 
      </Root> 
      <Root level="INFO"> 
       <AppenderRef ref="Console" /> 
      </Root> 

      <Logger name="wh1spr.gamebot.MessageHandler" level="Debug" additivity="false"> 
       <AppenderRef ref="Console" /> 
      </Logger> 


     </Loggers> 
    </Configuration> 

代碼本身

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

public class MessageHandler { 
    final static Logger logger = LoggerFactory.getLogger(MessageHandler.class); 

    ... 
    @EventSubscriber 
    public onMessageReceived(MessageReceivedEvent event) { 
     ... 
     logger.info("This should show up in both console and Gamebot.log") 
     ... 
    } 
    ... 
} 

輸出
對於文件,什麼都沒有。
對於控制檯: 測井機器人在...

2017-05-30 17:54:54,666 main DEBUG Initializing configuration XmlConfiguration[location=/Users/NAME/Desktop/Workspace/DiscordBot/bin/log4j2.xml] 
2017-05-30 17:54:54,675 main DEBUG Installed script engines 
2017-05-30 17:54:55,164 main DEBUG Oracle Nashorn Version: 1.8.0_45, Language: ECMAScript, Threading: Not Thread Safe, Compile: true, Names: {nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript} 
2017-05-30 17:54:55,164 main DEBUG PluginManager 'Core' found 112 plugins 
2017-05-30 17:54:55,165 main DEBUG PluginManager 'Level' found 0 plugins 
2017-05-30 17:54:55,170 main DEBUG PluginManager 'Lookup' found 13 plugins 
2017-05-30 17:54:55,173 main DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout]. 
2017-05-30 17:54:55,188 main DEBUG PluginManager 'TypeConverter' found 26 plugins 
2017-05-30 17:54:55,201 main DEBUG PatternLayout$Builder(pattern="%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n", PatternSelector=null, Configuration(GameBot), Replace=null, charset="null", alwaysWriteExceptions="null", disableAnsi="null", noConsoleNoAnsi="null", header="null", footer="null") 
2017-05-30 17:54:55,201 main DEBUG PluginManager 'Converter' found 41 plugins 
2017-05-30 17:54:55,202 main DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.ConsoleAppender]. 
2017-05-30 17:54:55,210 main DEBUG ConsoleAppender$Builder(target="SYSTEM_OUT", follow="null", direct="null", bufferedIo="null", bufferSize="null", immediateFlush="null", ignoreExceptions="null", PatternLayout(%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n), name="Console", Configuration(GameBot), Filter=null) 
2017-05-30 17:54:55,210 main DEBUG Starting OutputStreamManager SYSTEM_OUT.false.false 
2017-05-30 17:54:55,211 main DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout]. 
2017-05-30 17:54:55,212 main DEBUG PatternLayout$Builder(pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n", PatternSelector=null, Configuration(GameBot), Replace=null, charset="null", alwaysWriteExceptions="null", disableAnsi="null", noConsoleNoAnsi="null", header="null", footer="null") 
2017-05-30 17:54:55,225 main DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.FileAppender]. 
2017-05-30 17:54:55,230 main DEBUG FileAppender$Builder(fileName="Gamebot.log", append="false", locking="null", advertise="null", advertiseUri="null", createOnDemand="null", bufferedIo="null", bufferSize="null", immediateFlush="false", ignoreExceptions="null", PatternLayout(%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n), name="MyFile", Configuration(GameBot), Filter=null) 
2017-05-30 17:54:55,233 main DEBUG Starting FileManager Gamebot.log 
2017-05-30 17:54:55,234 main DEBUG Building Plugin[name=appenders, class=org.apache.logging.log4j.core.config.AppendersPlugin]. 
2017-05-30 17:54:55,235 main DEBUG createAppenders(={Console, MyFile}) 
2017-05-30 17:54:55,235 main DEBUG Building Plugin[name=AppenderRef, class=org.apache.logging.log4j.core.config.AppenderRef]. 
2017-05-30 17:54:55,243 main DEBUG createAppenderRef(ref="MyFile", level="null", Filter=null) 
2017-05-30 17:54:55,244 main DEBUG Building Plugin[name=root, class=org.apache.logging.log4j.core.config.LoggerConfig$RootLogger]. 
2017-05-30 17:54:55,245 main DEBUG createLogger(additivity="null", level="DEBUG", includeLocation="null", ={MyFile}, ={}, Configuration(GameBot), Filter=null) 
2017-05-30 17:54:55,248 main DEBUG Building Plugin[name=AppenderRef, class=org.apache.logging.log4j.core.config.AppenderRef]. 
2017-05-30 17:54:55,249 main DEBUG createAppenderRef(ref="Console", level="null", Filter=null) 
2017-05-30 17:54:55,249 main DEBUG Building Plugin[name=root, class=org.apache.logging.log4j.core.config.LoggerConfig$RootLogger]. 
2017-05-30 17:54:55,250 main DEBUG createLogger(additivity="null", level="INFO", includeLocation="null", ={Console}, ={}, Configuration(GameBot), Filter=null) 
2017-05-30 17:54:55,251 main DEBUG Building Plugin[name=AppenderRef, class=org.apache.logging.log4j.core.config.AppenderRef]. 
2017-05-30 17:54:55,251 main DEBUG createAppenderRef(ref="Console", level="null", Filter=null) 
2017-05-30 17:54:55,252 main DEBUG Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig]. 
2017-05-30 17:54:55,256 main DEBUG createLogger(additivity="false", level="DEBUG", name="wh1spr.gamebot.MessageHandler", includeLocation="null", ={Console}, ={}, Configuration(GameBot), Filter=null) 
2017-05-30 17:54:55,257 main DEBUG Building Plugin[name=loggers, class=org.apache.logging.log4j.core.config.LoggersPlugin]. 
2017-05-30 17:54:55,258 main DEBUG createLoggers(={root, root, wh1spr.gamebot.MessageHandler}) 
2017-05-30 17:54:55,259 main DEBUG Configuration XmlConfiguration[location=/Users/NAME/Desktop/Workspace/DiscordBot/bin/log4j2.xml] initialized 
2017-05-30 17:54:55,260 main DEBUG Starting configuration XmlConfiguration[location=/Users/NAME/Desktop/Workspace/DiscordBot/bin/log4j2.xml] 
2017-05-30 17:54:55,260 main DEBUG Started configuration XmlConfiguration[location=/Users/NAME/Desktop/Workspace/DiscordBot/bin/log4j2.xml] OK. 
2017-05-30 17:54:55,263 main DEBUG Shutting down OutputStreamManager SYSTEM_OUT.false.false-1 
2017-05-30 17:54:55,263 main DEBUG Shut down OutputStreamManager SYSTEM_OUT.false.false-1, all resources released: true 
2017-05-30 17:54:55,263 main DEBUG Appender DefaultConsole-1 stopped with status true 
2017-05-30 17:54:55,264 main DEBUG Stopped [email protected]40 OK 
2017-05-30 17:54:55,325 main DEBUG Registering MBean org.apache.logging.log4j2:type=73d16e93 
2017-05-30 17:54:55,327 main DEBUG Registering MBean org.apache.logging.log4j2:type=73d16e93,component=StatusLogger 
2017-05-30 17:54:55,329 main DEBUG Registering MBean org.apache.logging.log4j2:type=73d16e93,component=ContextSelector 
2017-05-30 17:54:55,331 main DEBUG Registering MBean org.apache.logging.log4j2:type=73d16e93,component=Loggers,name= 
2017-05-30 17:54:55,332 main DEBUG Registering MBean org.apache.logging.log4j2:type=73d16e93,component=Loggers,name=wh1spr.gamebot.MessageHandler 
2017-05-30 17:54:55,336 main DEBUG Registering MBean org.apache.logging.log4j2:type=73d16e93,component=Appenders,name=Console 
2017-05-30 17:54:55,337 main DEBUG Registering MBean org.apache.logging.log4j2:type=73d16e93,component=Appenders,name=MyFile 
2017-05-30 17:54:55,338 main DEBUG Reconfiguration complete for context[name=73d16e93] at URI /Users/NAME/Desktop/Workspace/DiscordBot/bin/log4j2.xml ([email protected]) with optional ClassLoader: null 
2017-05-30 17:54:55,339 main DEBUG Shutdown hook enabled. Registering a new one. 
2017-05-30 17:54:55,340 main DEBUG LoggerContext[name=73d16e93, [email protected]] started OK. 
17:54:55.383 [INFO ] org.eclipse.jetty.util.log - Logging initialized @1179ms to org.eclipse.jetty.util.log.Slf4jLog 
17:54:55.389 [INFO ] sx.blah.discord.Discord4J - Discord4J v2.8.1 (60523841852316689438ed3099ad7203f5bd262b-6052384) (https://github.com/austinv11/Discord4J) 
17:54:55.389 [INFO ] sx.blah.discord.Discord4J - A Java binding for the official Discord API, forked from the inactive https://github.com/nerd/Discord4J. Copyright (c) 2017, Licensed under GNU LGPLv3 
17:54:56.887 [INFO ] sx.blah.discord.Discord4J - Websocket Connected. 
17:54:57.107 [INFO ] sx.blah.discord.Discord4J - Connected to Discord Gateway v5. Receiving 1 guilds. 
GameBot is ready for action! 
17:55:19.565 [DEBUG] wh1spr.gamebot.MessageHandler - Message received! Wh1spr > &&shutdown ==> This is the message that initiates shutdown (saving a few files then calling System.exit(0)) 
2017-05-30 17:55:19,740 pool-1-thread-1 DEBUG Stopping LoggerContext[name=73d16e93, [email protected]] 
2017-05-30 17:55:19,740 pool-1-thread-1 DEBUG Stopping LoggerContext[name=73d16e93, [email protected]]... 
2017-05-30 17:55:19,743 pool-1-thread-1 DEBUG Shutting down FileManager Gamebot.log 
2017-05-30 17:55:19,744 pool-1-thread-1 DEBUG Shut down FileManager Gamebot.log, all resources released: true ==> It should've written something to the file here, yet it doesn't. 
2017-05-30 17:55:19,744 pool-1-thread-1 DEBUG Appender MyFile stopped with status true 
2017-05-30 17:55:19,744 pool-1-thread-1 DEBUG Shutting down OutputStreamManager SYSTEM_OUT.false.false 
2017-05-30 17:55:19,744 pool-1-thread-1 DEBUG Shut down OutputStreamManager SYSTEM_OUT.false.false, all resources released: true 
2017-05-30 17:55:19,745 pool-1-thread-1 DEBUG Appender Console stopped with status true 
2017-05-30 17:55:19,745 pool-1-thread-1 DEBUG Stopped XmlConfiguration[location=/Users/NAME/Desktop/Workspace/DiscordBot/bin/log4j2.xml] OK 
2017-05-30 17:55:19,745 pool-1-thread-1 DEBUG Stopped LoggerContext[name=73d16e93, [email protected]] with status true 

編輯:
導入庫

  • 的log4j的API-2.8.2.jar
  • log4j的,芯 - 2.8.2.jar
  • log4j-slf4j-impl-2.8.2.jar
  • slf4j-api-1.7.25.jar
+0

解決這個問題你有沒有試着用'更換' ...'...'在XML – Ishnark

+0

這給了我一個錯誤「給元素RollingFile的參數無效」這是一個「ConfigurationException」 – Wh1spr

回答

2

這最終會比評論更長,所以我會將它作爲答案發布。

  1. 你的文件附錄似乎是正確的。
  2. 看起來你只能設置Root level一次。所以你實際上告訴log4j是這樣的:

    i。 「設置根記錄器的級別爲調試,並使用名爲'MyFile'的文件appender。

    ii。但接下來你會說:」其實,設置根記錄器的級別爲info,並且appender爲控制檯appender稱爲「控制檯」。

  3. 你與你所定義的記錄器在做什麼,當你做到以下幾點:

    <Logger name="wh1spr.gamebot.MessageHandler" level="Debug" additivity="false"> 
         <AppenderRef ref="Console" /> 
    </Logger> 
    

    告訴您要創建一個名爲「wh1spr.gamebot.MessageHandler」同級別記錄器設置爲調試的log4j ,並且您希望它使用名爲Console'. Now, since you've set the root logger's level to INFO`的Appender,則當前記錄器的級別爲Debug(更高優先級),因此您只需使用控制檯appender。

您應該能夠擺脫第二<Root>...</Root>

相關問題