Request of all plugin developers - Verbose Logging

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

  1. Offline

    Digi

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    @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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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. Offline

    Digi

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    @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.

    This post has been edited 2 times. It was last edited by Digi May 30, 2012.
  4. Offline

    codename_B

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    While I do agree - I feel that bPermissions pretty much presents the minimum of information needed anyway.
  5. Offline

    TnT Trinitrotoluene Maximus Administrator Bukkit Help

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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.

    This post has been edited 1 time. It was last edited by TnT May 30, 2012.
  6. Offline

    codename_B

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Fair enough - I'll add that info into debug mode!
  7. Offline

    TnT Trinitrotoluene Maximus Administrator Bukkit Help

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Thank you good sir!
  8. Offline

    nicholasntp

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Id like something like this.

    This post has been edited 1 time. It was last edited by nicholasntp May 30, 2012.
  9. Offline

    grandwazir

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    @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. Online

    np98765 43210 Moderator BukkitDev Staff

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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. Online

    evilmidget38 BukkitDev Staff

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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.

Share This Page