Java 如何为logger生成实例?
这是我的密码Java 如何为logger生成实例?,java,logging,Java,Logging,这是我的密码 package com.my; import org.apache.log4j.spi.LoggerFactory; import java.io.*; import java.util.logging.*; public class Log { public static void main(String[] args) { try{ FileHandler hand = new FileHandler("vk.log");
package com.my;
import org.apache.log4j.spi.LoggerFactory;
import java.io.*;
import java.util.logging.*;
public class Log {
public static void main(String[] args) {
try{
FileHandler hand = new FileHandler("vk.log");
Logger log = Logger.getLogger("log_file");
log.addHandler(hand);
log.warning("Doing carefully!");
log.info("Doing something ...");
log.severe("Doing strictily ");
System.out.println(log.getName());
}
catch(IOException e){
System.out.println(e)
}
}
}您的代码或多或少都很好。请检查导入内容,如果删除该行,则应能正常工作:
log.getLogger("");
然后,类的工作实现将是:
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Logger;
public class test {
public static void main(String[] args) {
try {
FileHandler hand = new FileHandler("vk.log");
Logger log = Logger.getLogger("log_file");
log.addHandler(hand);
log.warning("Doing carefully!");
log.info("Doing something ...");
log.severe("Doing strictily ");
System.out.println(log.getName());
} catch (IOException e) {
// Handle error.
}
}
}
您能进一步解释您的问题吗?您的代码或多或少都很好。请检查导入,如果您删除了该行,则应该可以正常工作:
log.getLogger("");
然后,类的工作实现将是:
import java.io.IOException;
import java.util.logging.FileHandler;
import java.util.logging.Logger;
public class test {
public static void main(String[] args) {
try {
FileHandler hand = new FileHandler("vk.log");
Logger log = Logger.getLogger("log_file");
log.addHandler(hand);
log.warning("Doing carefully!");
log.info("Doing something ...");
log.severe("Doing strictily ");
System.out.println(log.getName());
} catch (IOException e) {
// Handle error.
}
}
}
你能进一步解释你的问题吗?这里有一些建议 注意你的进口,你在混合 Log4j或java.util.logging导入 无需调用getLogger两次 对例外情况做点什么, 即使这意味着使用 本测试中的System.out.println e.printStackTrace 案例如果出现问题, 你把它们藏起来了。
这里有一些建议 注意你的进口,你在混合 Log4j或java.util.logging导入 无需调用getLogger两次 对例外情况做点什么, 即使这意味着使用 本测试中的System.out.println e.printStackTrace 案例如果出现问题, 你把它们藏起来了。
如果删除多余的log.getLogger,代码应该可以工作;语句并修复导入 有几点意见: 如果您有多个记录器,您可以有选择地打开和关闭它们。传统的做法是基于类或包名创建多个记录器;e、 g
Logger log = Logger.getLogger(this.getClass());
或
您正在以编程方式实例化和关联处理程序。最好将日志记录配置放在XML或属性文件中,并使用其中一个配置程序加载它并连接日志记录处理程序。这让你。。。或者用户。。。在不修改代码的情况下调整日志记录
您可能应该阅读说明上述内容以及有关使用log4j的其他内容的文档
以上假设您试图使用log4j。如果您真的试图使用java.util.logging,那么有些细节并不完全正确。而且,在我看来,使用log4j或它的后代会更好。如果删除多余的log.getLogger,代码应该可以工作;语句并修复导入 有几点意见: 如果您有多个记录器,您可以有选择地打开和关闭它们。传统的做法是基于类或包名创建多个记录器;e、 g
Logger log = Logger.getLogger(this.getClass());
或
您正在以编程方式实例化和关联处理程序。最好将日志记录配置放在XML或属性文件中,并使用其中一个配置程序加载它并连接日志记录处理程序。这让你。。。或者用户。。。在不修改代码的情况下调整日志记录
您可能应该阅读说明上述内容以及有关使用log4j的其他内容的文档
以上假设您试图使用log4j。如果您真的试图使用java.util.logging,那么有些细节并不完全正确。而且,在我看来,使用log4j或它的后代会更好。你的问题是什么?另外,请删除空的catch块,因为它会吞下任何异常,您将无法理解发生了什么。用catchIOException e{throw new runtimeExceptionOne;}替换它。你的问题是什么?另外,请删除空的catch块,因为它会吞下任何异常,您将无法理解发生了什么。将其替换为catchIOException e{throw new runtimeExceptionOne;}日志是我的类的实例吗?不,日志是我的类的实例吗?不,日志是日志的实例。我不理解你的问题。日志是我的类的实例吗?当然不是。您的类名为Log,是我从您的代码中借用的Log变量!使用SomeClass.class时要小心,OP使用的是java.util.logging,而不是Log4j,因此class参数不被接受。我不明白你的问题。log是我的类的实例吗?当然不是。您的类名为Log,是我从您的代码中借用的Log变量!有类型记录器。小心使用SomeClass.class,OP使用的是java.util.logging而不是Log4j,因此类参数不被接受Yeah e.printStackTrace将是首选Yeah e.printStackTrace将是首选