添加日志和sysout

时间:2014-05-21 14:53:41

标签: java logging

我被要求在类声明之前添加日志和sysout。我应该使用什么日志以及如何添加Sysout?在这个程序中添加这些是什么意思?还要求我为Staff创建常量字段Id和名字。这意味着我应该创建将存储员工ID和名字的常量变量吗?

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();
    }
  }

}

2 个答案:

答案 0 :(得分:0)

“你被问到”,当你的作业不明确时,你应该先问你的TA。

此外,“/ Users / mkyong / staff.xml”对我来说非常可疑。因为mkyong是一位非常着名的开发者。你不应该从互联网上取样并复制/粘贴它们而不理解它们。

那就是说,是的,您应该将静态最终字段声明为常量,例如

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")

记录执行相同的操作,但使用框架并自动提供更多信息,例如打印行的时间以及触发打印的类。它还提供了何时打印消息的灵活性。  先看看这个 http://en.wikipedia.org/wiki/Java_logging_framework

答案 1 :(得分:0)

我认为 Sysout 意味着System.out.println,我可以看到,你已经添加了这些内容。

通过logs我认为它意味着使用日志记录实现。使用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");
  }
}

正如您所看到的,Logger的一些目的是输出用于诊断(调试,监控)的文本。它可以将文本输出到控制台,文件,数据库,并以任何您想要的方式对其进行格式化。

使用记录器与普通System.out.println可提供更多功能和控制。

  

我还被要求为员工ID和名字

创建常量字段

你有这个想法。这意味着为"firstname""staff""lastname"和任何其他字符串创建常量。然后,在需要使用该字符串的地方使用常量:

例如:

private static final String STAFF = "staff";
private static final String FIRST_NAME = "firstname";

这样做的好处是,您可以在一个地方查看所有常量,并在需要时轻松修改它们。想象一下在5个地方使用"firstname"。比你意识到你打算用“first_name”代替。如果你不使用常数,你必须在5个地方改变它,否则,只在1个地方。