Java 日志 API 中的 xmlformater
原文:https://www . geesforgeks . org/xmlformater-in-Java-logging-API/
在软件开发周期中,记录正在完成的一组动作总是好的。记录动作被称为记录。使用Java . util . logging包登录 Java(默认)记录数据。此外,我们还有第三方框架,如 Log4j、Logback 和 tinylog 等。,根据要求,选择日志框架的首选项有所不同。在 Java 中, java.util 包具有日志记录实用程序,日志记录非常需要以下导入:
import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.Logger;
现在,让我们通过一个“属性文件”来检查日志消息显示的规范。在一个项目中,我们可以指定一个属性文件,它们可以跟踪日志记录功能的维护。其中,“Java . util . logging . console handler . formatter”指定要使用的 Formatter 类的名称,默认设置是 Java . util . logging . simple Formatter,它只不过是以纯文本显示日志条目。下面我们将使用日志记录来介绍 XMLFormatter,如下所示:
日志记录日志记录信息=新日志记录(级别。INFO," xmlformaterttest ");
日志记录包含以下获取方法:
getLevel()–可以是信息/警告等。,(消息的日志级别)
All - 1
FINEST - 2
FINER - 3
FINE - 4
CONFIG - 5
INFO - 6
WARNING - 7
SEVERE. - 8
OFF - 9
getMessage()–在这里,它将显示 XMLFormatterTest,我们给出的示例如下
LogRecord logRecordInformation = new LogRecord(Level.INFO, "XMLFormatterTest");
get illis()–16167447995
get sequence number()–0
我们还有如下其他方法:
| 方法 | 已执行的操作 | | --- | --- | | getLoggerName() | 它返回记录器的名称。 | | getParameters() | 它返回要插入到这个日志记录的消息中的参数。 | | getResourceBundle() | 显示用于本地化此日志记录消息的信息(如果有),否则返回空值。 | | getResourceBundleName() | 它显示用于本地化此日志记录的消息的 ResourceBundle(如果有)的名称,否则返回 null。 | | getSequenceNumber() | 它显示一个序列号 | | getSourceClassName() | 它显示记录由该日志记录表示的消息的类的类名。 |例 1:
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program demonstrating XML Formatter Logging API
// Importing required libraries
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.XMLFormatter;
// Main class
// XMLFormatterExample
public class GFG {
// Main driver method
public static void main(String[] args)
{
// A Locale object represents a specific
// geographical, political, or cultural region Let
// us take Locale.ENGLISH as the default in this
// program
Locale englishLocale = Locale.getDefault();
// Try block to check for exceptions
try {
Locale.setDefault(Locale.ENGLISH);
// Creating new object of GregorianCalendar
// class
GregorianCalendar calendar
= new GregorianCalendar();
int calendarYear = calendar.get(Calendar.YEAR);
// There are different levels of setting
// loggerInformation default level is INFO.
// If the value is not specified, for our
// example we have kept as INFO
// other available levels are
// ALL - 1,
// FINEST - 2,
// FINER - 3,
// FINE - 4,
// CONFIG - 5,
// INFO - 6,
// WARNING - 7,
// SEVERE - 8,
// OFF - 9
LogRecord logRecordInformation = new LogRecord(
Level.INFO, "XMLFormatterTest");
// Display message for better readability
System.out.println(
"--------------------------------------");
// Printing logger levels, message,
// getMillis,getSequenceNumber
System.out.println(
"Logger level.."
+ logRecordInformation.getLevel());
System.out.println(
"Message.."
+ logRecordInformation.getMessage());
System.out.println(
"getMillis.."
+ logRecordInformation.getMillis());
System.out.println(
"getSequenceNumber.."
+ logRecordInformation.getSequenceNumber());
// Display message for better readability
System.out.println(
"--------------------------------------");
// As we are using XMLFormatter, it displays the
// output in XML format.
// It has higher visibility if used with UTF-8
// Now creating object of XMLFormatter class
XMLFormatter formatter = new XMLFormatter();
String xmlFormatted
= formatter.format(logRecordInformation);
System.out.println(xmlFormatted);
}
// Executing the above code no matter
// if there is exception or not
finally {
Locale.setDefault(englishLocale);
}
}
}
输出:
例 2:
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program demonstrating XML Formatter Logging API
// Importing required libraries
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.XMLFormatter;
// Main class
// XMLFormatterExample1
public class GFG {
// Main driver method
public static void main(String[] args) throws Exception
{
// Creating an object of XMLFormatter class
XMLFormatter xmlFormatter = new XMLFormatter();
// Setting level to Info
LogRecord logRecord = new LogRecord(
Level.INFO,
"Logrecord message to be printed in xml file..");
// We can see the output of LogRecord in
// logrecordxml.xml file
FileHandler fileHandler
= new FileHandler("logrecordxml.xml");
fileHandler.setFormatter(xmlFormatter);
// Prepared data is displayed in the
// logrecordxml.xml file
fileHandler.publish(logRecord);
// Lastly releasing out all the records
// using the flush() method
fileHandler.flush();
}
}
输出:不用在控制台打印,我们可以在 XML 文件中打印,如下图所示
结论:
XML 符号对阅读和理解日志消息非常有帮助。因此,XMLFormatter 提供了一种有效的方法来实现这一点。许多人更喜欢使用 XMLFormatter,而不是产生纯文本格式输出的 SimpleFormatter。
版权属于:月萌API www.moonapi.com,转载请注明出处