Java Program Log: Java.util.logging.Logger class

Source: Internet
Author: User

first, the level of Logger

More detailed than the log4j level, all defined in Java.util.logging.Level.
The levels are sorted in descending order as Follows:
SEVERE (highest Value)
WARNING
INFO
CONFIG
FINE
Finer
FINEST (lowest Value)
In addition, there is a level off that can be used to turn off logging and use level all to enable logging for all Messages.
Logger The default level is info, and logs that are lower than info will not be displayed (but also written to the file).

Attention:
High-level logger do not display (or Write) low-level records.
Low-level logger will display (or Write) high-level RECORDS.


second, Create Logger object

Static Logger GetLogger (String Name)
Finds or creates a logger for the specified subsystem.
Static Logger GetLogger (string name, string Resourcebundlename)
Finds or creates a logger for the specified subsystem.

Note: name is Logger, and is typically named Logger using a dot-delimited hierarchy Namespace.
When the name is the same, the logger of the same name only creates one (different references point to the same logger, which means that different references can operate on the same logger).


three, simple instance---console printing Logger
 public classTestlogger { public Static voidmain (string[] Args) {//Create Severe-level LoggerLogger Severelogger = Logger.getlogger ("logger.severe");//name is Logger.severeSeverelogger.setlevel (level.severe);//Setting the logger level//Create Warning-level LoggerLogger Warninglogger = Logger.getlogger ("logger.warning");    Warninglogger.setlevel (level.warning); //Create an Info-level loggerLogger Infologger = Logger.getlogger ("logger.info");    Infologger.setlevel (level.info); //Create a Config-level loggerLogger Configlogger = Logger.getlogger ("logger.config");//logs that are lower than the info level will not be displayedConfiglogger.setlevel (level.config);/*------------------------------------record test----------------------------------*/Infologger.info ("this is the record of infologger");//record an info-level messageInfologger.warning ("low level can display advanced Information?") ");//The result shows that low level logger can display/record high level informationwarninglogger.warning ("this is Warninglogger's record."); Warninglogger.severe ("low level can display advanced information?" "); Warninglogger.info ("advanced can show low-level information?" ");//high-level logger cannot display/record low levels of information by resultsSeverelogger.severe ("this is Severelogger's record."); Severelogger.warning ("advanced can show low-level information?" "); Configlogger.config ("this is the record of configlogger");//logger below the info level will not show messages of the same level/lower levelLogger TestLogger1= Logger.getlogger ("logger.info");//when the name is the same, the logger of the same name creates only oneSystem.out.println ("logger of the same name is equal:" + (infologger = =testLogger1)); Testlogger1.setlevel (level.severe);//set to High levelInfologger.info ("this is Infologger's record"); Infologger.setlevel (level.info);//set to low level againInfologger.info ("this is Infologger's record"); }}

Output result:

Iv. Handler class of Logger

The Handler object obtains the log information from the Logger and exports the Information. For example, It can write this information to a console or file, or it can send it to a blog service or forward it to the operating system log.
You can disable Handler by executing setLevel (level.off) and re-enable it by performing the appropriate level of setLevel.
The Handler class typically uses the Logmanager property to set the default values for the Filter, Formatter, and level of the Handler.
Java.util.logging.Handler
Java.util.logging.MemoryHandler
Java.util.logging.StreamHandler
Java.util.logging.ConsoleHandler
Java.util.logging.FileHandler
Java.util.logging.SocketHandler

v. Simple example---write out the Logger file
 public classTestlogger { public Static voidMain (string[] Args)throwsIOException {//Create Severe-level LoggerLogger Severelogger = Logger.getlogger ("logger.severe");//name is Logger.severeSeverelogger.setlevel (level.severe);//Setting the logger level//Create Warning-level LoggerLogger Warninglogger = Logger.getlogger ("logger.warning");    Warninglogger.setlevel (level.warning); //Create an Info-level loggerLogger Infologger = Logger.getlogger ("logger.info");    Infologger.setlevel (level.info); //Create a Config-level loggerLogger Configlogger = Logger.getlogger ("logger.config");//logs that are lower than the info level will not be displayedConfiglogger.setlevel (level.config); File LogDir=NewFile ("f:/logtest", "logdir");//Create file Object parameters: parent directory, subdirectoryLogdir.mkdirs ();//Create a multilevel catalogFile LogFile =NewFile (logdir.getabsolutepath (), "logTest.log");//to Create a File objectFilehandler Filehandler=NewFilehandler (logfile.getabsolutepath (), 10240, 1,true);//write out the log file, parameters: path, maximum number of bytes, number of files to use, whether to append Files. (when The maximum number of bytes is reached, the original record is deleted and the record is Restarted)Filehandler.setlevel (level.all);//similarly, high-level filehandler do not record low-level messages, and all-level Filehandler record messages of all levels//filehandler.setformatter (new mylogformatter ());//set the custom logging format (the default is XML format), which is mentioned later in this Article. Infologger.addhandler (filehandler);//Add Handler ObjectInfologger.info ("info Record of infologger");//writing records to a log fileInfologger.config ("infologger config record");//below The logger levelrecords are not written to the log fileConfiglogger.addhandler (filehandler); Configlogger.info ("info record for configlogger"); Configlogger.config ("config Record of configlogger");//If the Filehandler level is all or below the info,config level logger will also be written to the log file, but will not be printed in the console    }}

Output: (you can find the written log file in the F Drive)


similarly, the Logger log () method can also be used to write the file, which is not mentioned Here.

Opening the file will reveal that the default log mode is in XML format.
We can also customize the format of the Logger.
Need to be defined with Formatter.

Vi. the Formatter of Logger

Formatter provides support for formatted LOGRECORDS.
In general, each log record Handler has an associated Formatter.
Formatter accepts the LogRecord and converts it to a string.
The LogRecord object is used to pass log requests between the log framework and a single log Handler.

Several Formatter:
Java.util.logging.Formatter
Java.util.logging.SimpleFormatter
Java.util.logging.XMLFormatter

Attention:
It's java.util.logging.Formatter, separate from the Java.util.Formatter Area.


vii. Simple Instance---custom Formatter
/** classes used for custom formatting */ class extends Formatter {    @Override    public  String format (logrecord record) {      return record.getsourceclassname () + ":" + record.getsourcemethodname () + ":" + record.getlevel () + ":" + Record. GetMessage () + "\ n";     }}

For other formatting settings, refer to the API Java.util.Formatter this class

Output result:

Java Program Log: Java.util.logging.Logger class

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.