Java 添加日志和sysout
我被要求在类声明之前添加日志和sysout。我应该使用什么日志以及如何添加sysout?在这个程序中添加这些日志的意义是什么?我还被要求为员工Id和名字创建常量字段。这是否意味着我应该创建常量变量来存储员工Id和名字Java 添加日志和sysout,java,logging,Java,Logging,我被要求在类声明之前添加日志和sysout。我应该使用什么日志以及如何添加sysout?在这个程序中添加这些日志的意义是什么?我还被要求为员工Id和名字创建常量字段。这是否意味着我应该创建常量变量来存储员工Id和名字 public class Read { public static void main(String argv[]) { try { File fXmlFile = new File("/Users/mkyong/staff.xml"); Docu
public class Read {
public static void main(String argv[]) {
try {
File fXmlFile = new File("/Users/mkyong/staff.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("staff");
System.out.println("----------------------------");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Staff id : " + eElement.getAttribute("id"));
System.out.println("First Name : " + eElement.getElementsByTagName("firstname").item(0).getTextContent());
System.out.println("Last Name : " + eElement.getElementsByTagName("lastname").item(0).getTextContent());
System.out.println("Nick Name : " + eElement.getElementsByTagName("nickname").item(0).getTextContent());
System.out.println("Salary : " + eElement.getElementsByTagName("salary").item(0).getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
公共类读取{
公共静态void main(字符串argv[]){
试一试{
File fXmlFile=新文件(“/Users/mkyong/staff.xml”);
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
documentdoc=dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
System.out.println(“根元素:+doc.getDocumentElement().getNodeName());
NodeList nList=doc.getElementsByTagName(“staff”);
System.out.println(“-------------------------------”;
对于(int-temp=0;temp
“有人问过你”,当你的作业不清楚时,你应该先问助教
此外,“/Users/mkyong/staff.xml”在我看来非常可疑。因为他是一位非常著名的开发人员。你不应该在不理解的情况下,从互联网上获取示例并复制/粘贴它们
也就是说,您应该将静态final字段声明为常量,例如
private static final String STAFF_ID = "Staff id"
private static final String FIRST_NAME = "First Name"
然后在代码中替换这些值
至于日志和sysout,sysout只是意味着添加
System.out.println("something you would like to print")
日志也做同样的事情,但使用框架并自动提供更多信息,例如打印行的时间以及哪个类触发了打印,它还提供了打印消息的灵活性。
先看看这个
我假设Sysout的意思是System.out.println
,如我所见,您已经添加了这些
通过日志
我认为这意味着使用日志实现。使用java.utils.logging.Logger
的示例如下:
import java.util.logging.Logger;
public class Main {
private static Logger LOGGER = Logger.getLogger(Main.class.getSimpleName());
public static void main(String[] args) {
LOGGER.info("Logging an INFO-level message");
}
}
如您所见,一些记录器的目的是输出用于诊断(调试、监视)的文本。它可以将文本输出到控制台、文件和数据库,并以您想要的任何方式对其进行格式化
使用记录器vs plainSystem.out.println
提供了更多的功率和控制
我还被要求为员工Id和名字创建常量字段
你有主意了。这意味着为“firstname”
、“staff”
、“lastname”
和任何其他字符串创建常量。然后,在需要使用该字符串的地方,使用常量:
例:
这样做的好处是,您可以在单个位置查看所有常量,并在需要时轻松修改它们。想象一下在5个地方使用“firstname”
。然后你意识到你想用“名字”来代替。如果不使用常量,则必须在5个位置更改它,否则仅在1个位置更改它
private static final String STAFF = "staff";
private static final String FIRST_NAME = "firstname";