Browsing projects by Tag(s)

Select a tag to browse associated projects and drill deeper into the tag cloud.

Showing page 1 of 1

OverviewMinLog is a Java logging library. Key features: Low overhead Logging statements below a given level can be automatically removed by javac at compile time. Simple and efficient The API is concise and very efficient at runtime. Extremely lightweight The entire project consists of one Java ... [More] file with just over 100 non-comment lines of code. The JAR is 2.6kb (2kb with pack200). UsageMessages are logged using static methods: Log.info("Some message."); Log.debug("Error reading file: " + file, ex);A static import can be used to make the logging more concise: import static com.esotericsoftware.minlog.Log.*; // ... info("Some message."); debug("Error reading file: " + file, ex);While optional, for brevity the rest of this documentation assumes this static import is in place. If log statements from different libraries or areas of an application need to be differentiated, a category can be specified: info("some lib", "Some message."); debug("some lib", "Error reading file: " + file, ex);Log levelSetting the level will log that level, as well as all higher levels: Log.set(LEVEL_INFO);The levels are: LEVEL_NONE disables all logging. LEVEL_ERROR is for critical errors. The application may no longer work correctly. LEVEL_WARN is for important warnings. The application will continue to work correctly. LEVEL_INFO is for informative messages. Typically used for deployment. LEVEL_DEBUG is for debug messages. This level is useful during development. LEVEL_TRACE is for trace messages. A lot of information is logged, so this level is usually only needed when debugging a problem. Conditional loggingThe current log level can be checked before the message is logged: if (ERROR) error("Error reading file: " + file, ex); if (TRACE) { StringBuilder builder = new StringBuilder(); // Do work, append to the builder. trace(builder); }Checking the log level before calling the logging method is optional, but prevents unnecessary method calls and string concatenation for log levels that are disabled. Fixed logging levelsMinLog users can choose from the regular "minlog.jar" or from from a JAR file like "minlog-info.jar" which has a fixed logging level that cannot be changed at runtime (calls to Log.set() have no affect). During compilation, any conditional logging statements below the fixed level will be automatically optimized away by the Java compiler. Please see OverheadAndComparisons for more about the overhead when using MinLog with/without conditional logging and with/without a fixed logging level. The document also compares the MinLog overhead with log4j and java.util.logging. Output customizationThe default logger outputs messages in this format: time level: [category] messageWhere "time" is the time elapsed since the application started. For example: 00:00 TRACE: [kryo] Wrote string: moo 00:00 TRACE: [kryo] Wrote object: NonNullTestClass 00:01 TRACE: [kryo] Wrote string: this is some data 00:01 TRACE: [kryo] Compressed to 7.97% using: DeflateCompressor 00:12 TRACE: [kryo] Decompressed using: DeflateCompressor 00:12 TRACE: [kryo] Read string: this is some dataThe output can be customized: static public class MyLogger extends Logger { public void log (int level, String category, String message, Throwable ex) { StringBuilder builder = new StringBuilder(256); builder.append(new Date()); builder.append(' '); builder.append(level); builder.append('['); builder.append(category); builder.append("] "); builder.append(message); if (ex != null) { StringWriter writer = new StringWriter(256); ex.printStackTrace(new PrintWriter(writer)); builder.append('\n'); builder.append(writer.toString().trim()); } System.out.println(builder); } } // ... Log.set(new MyLogger());Using this mechanism, log messages can be filtered (eg, by category), written to a file, etc. [Less]

0
 
  0 reviews  |  1 user  |  233 lines of code  |  0 current contributors  |  Analyzed 3 days ago
 
 

A chat room based on the concept of Comet http://en.wikipedia.org/wiki/Comet_(programming) for lower latency and less resource intensive browser and HTTP based chat.

0
 
  0 reviews  |  0 users  |  0 current contributors
 
 
 
 

Creative Commons License Copyright © 2013 Black Duck Software, Inc. and its contributors, Some Rights Reserved. Unless otherwise marked, this work is licensed under a Creative Commons Attribution 3.0 Unported License . Ohloh ® and the Ohloh logo are trademarks of Black Duck Software, Inc. in the United States and/or other jurisdictions. All other trademarks are the property of their respective holders.