Request of all plugin developers - Verbose Logging

Discussion in 'Plugin Development' started by TnT, May 13, 2012.

Thread Status:
Not open for further replies.
  1. mpuk_cl0ne
    You should, instead, make your own thread.

    Also, if you want anyone to use it you should first make it work properly, it gives errors when using it with all 4 options enabled.
     
  2. Offline

    Fishchunks

    I think the start up should look like this,

    Code:
    #############START UP#############
    2012-05-29 05:34:45 [LOAD] Starting Minequery server on 176.31.226.225:25652
    2012-05-29 05:34:45 [LOAD] In-Game Debug (1.0.0)
    2012-05-29 05:34:45 [LOAD] Minequery (1.5)
    2012-05-29 05:34:45 [LOAD] MiniEssentials (0.4.3)
    2012-05-29 05:34:45 [LOAD] Essentials (2.9.3)
    2012-05-29 05:34:45 [LOAD] World Guard (1.4)
    2012-05-29 05:34:45 [LOAD] World Edit (1.5)
    2012-05-29 05:34:45 [LOAD] Guardian (1.0)
    #############UPDATES#############
    2012-05-29 05:34:45 [UPDATE] Major World Guard (1.5)
    2012-05-29 05:34:45 [UPDATE] Minor World Edit (1.5.4)
    #############ERRORS#############
    2012-05-29 05:34:45 [MINOR] World Guard Chunk Dropped
    2012-05-29 05:34:45 [MINOR] MiniEssentials Clashes With Essentials
    2012-05-29 05:34:45 [MODERATE] Guardian Can't Connect To A Database
    2012-05-29 05:34:45 [SEVERE] In-Game Debug Detects Errors In Minequery
    #############END OF START UP#############
     
    nicholasntp likes this.
  3. Fishchunks
    Well, that's kinda possible... I myself use a next-tick delayed task (runs after all plugins have loaded) to load the required files, settings and stuff, and if there's an error it'll be printed after all plugins have loaded, instead of between loading messages.
     
  4. Offline

    codename_B

    While I do agree - I feel that bPermissions pretty much presents the minimum of information needed anyway.
     
  5. Offline

    TnT

    I just want to point out that I am VERY eager to get this in place, and absolutely, 100% welcome to recommendations. Please feel free to update Bukkit-1715 with suggestions.

    codename_B
    This is what CraftBukkit tells me about your plugins:
    Code:
    2012-05-29 07:26:44 [INFO] [bPermissionsWebGUI] Loading bPermissionsWebGUI v2.0
    2012-05-29 07:26:44 [INFO] [bPermissions] Loading bPermissions v2.9.4
    
    This is what gets outputted into the logs by your plugins. The only extra information I received was telling me my world, Arcadia, was loaded. This is not relevant to me, but may be nice to see (aka, a more verbose option in the config would show that info).

    Code:
    2012-05-29 07:26:48 [INFO] [bPermissionsWebGUI] Enabling bPermissionsWebGUI v2.0
    2012-05-29 07:26:48 [INFO] [bPermissionsWebGUI 2.0] bPermissions 2.9.4 detected, hooking in.
    2012-05-29 07:26:48 [INFO] [bPermissionsWebGUI 2.0] Enabled
    2012-05-29 07:26:48 [INFO] [bPermissions] Enabling bPermissions v2.9.4
    2012-05-29 07:26:48 [INFO] [bPermissions] Loading world: Arcadia
    2012-05-29 07:26:49 [INFO] [bPermissions] Enabled
    
    Hence, I respectfully disagree with your statement.
     
  6. Offline

    codename_B

    Fair enough - I'll add that info into debug mode!
     
  7. Offline

    TnT

    Thank you good sir!
     
  8. Offline

    nicholasntp

    Id like something like this.
     
  9. Offline

    grandwazir

    @Hidendra

    I second everything Hidendra says. The java logger provides a method to use for this already. You simply log stuff at a lower level and then set the threshold lower if plugin specific debugging is turned on. It would be even better if Bukkit directed these messages to the right files.

    This has been made worse recently by the extra unnecessary spam introduced by Bukkit when enabing and disabling all plugins. There is also confusing error messages and useless spam when using bukkit persistence which can not be suppressed easily. All these things would be steps in the right direction.
     
  10. Offline

    np98765

    This would be nice... A bit annoying when plugins print 4-5 lines in the console. When I make bigger plugins, I'll be sure to keep this in mind. :)

    Good suggestion, +1!
     
  11. Offline

    evilmidget38

    Code:
    package com.bukkitarena;
     
    import java.util.logging.Logger;
     
    /**
    * @author Nate Mortensen
    *
    */
    public class VerboseLogger{
        Logger log = Logger.getLogger("Minecraft");
        MessageImportance minimum;
        public VerboseLogger(String s){
            minimum = Enum.valueOf(MessageImportance.class, s);
        }
       
        public void info(String msg, MessageImportance m){
            if (m.getValue() >= minimum.getValue()){
                log.info("[BukkitArena]"+m.getPrefix()+msg);
            }
           
        }
     
    }
    &

    Code:
    package com.bukkitarena;
     
    /**
    * @author Nate Mortensen
    *
    */
    public enum MessageImportance {
        LOW(0, "[DEBUG]"),
        LOWEST(1, "[INFO]"),
        NORMAL(2, ""),
        HIGH(3, "[Warning]"),
        HIGHEST(4, "[WARN]"),
        URGENT(5, "[SEVERE]");
     
        int value;
        String prefix;
        private MessageImportance(int v, String p){
            value = v;
            prefix = p;
        }
        public String getPrefix(){
            return prefix;
        }
        public int getValue(){
            return value;
        }
    }
    
    I'm going to be using this inside my upcoming plugin, BukkitArena.
     
  12. Offline

    skore87

    I haven't read all of the replies to this thread, but how about this: plugin developers shall make their logging into a plugin specific log file to which contains all of the plugin logs where only the very vital is posted on the server log pointing to a specific entry in the verbose log.
     
Thread Status:
Not open for further replies.

Share This Page