我想登录由几个类组成的应用程序。我想要一个。txt日志文件的末尾。因此,我创建了一个静态记录器实例,并在一个类中为其创建了一个FileHandler。因为我想要一个文件,所以我在FileHandler中将第二个参数设置为true,以便能够在日志记录期间追加日志文件。
public class MyLogging {
static Logger logger;
public Handler fileHandler;
Formatter plainText;
public MyLogging() throws IOException{
//instance the logger
logger = Logger.getLogger(MyLogging.class.getName());
//instance the filehandler
fileHandler = new FileHandler("myLog.txt",true);
//instance formatter, set formatting, and handler
plainText = new SimpleFormatter();
fileHandler.setFormatter(plainText);
logger.addHandler(fileHandler);
}
之后,我创建了其他伐木工人。我知道我必须为每个类实例化一个记录器。因此,我只为每个类创建记录器(不带FileHandler)。但是所有的记录器都引用一个类(不是我创建记录器的类)。例如:
public class Test1 {
static Logger logger;
public Test1()throws IOException {
logger = Logger.getLogger(MyLogging.class.getName());
}
虽然执行了日志记录,但我不确定这是否是正确的解决方案。你能给我一些建议,如何用java来记录多个类吗。util。登录中?
在MyLogging类中,使构造函数私有
而不是公共
,需要以下方法:
private static Logger getLogger(){
if(logger == null){
try {
new MyLogging();
} catch (IOException e) {
e.printStackTrace();
}
}
return logger;
}
public static void log(Level level, String msg){
getLogger().log(level, msg);
System.out.println(msg);
}
log
方法是静态的,因此可以使用类名从任何类调用它。
因此,在所有类中,您可以只调用log方法来记录日志,如下所示:
public class Test1 {
//static Logger logger; //no need to create an object for logging
public Test1()throws IOException {
MyLogging.log(Level.INFO, MyLogging.class.getName()); //call log method using classname
}
我试图使用refrofit2、kotlin和loging-拦截器记录所有请求(使用网络拦截器): 改造:“2.0.2” okhttp3 : “3.2.0” com.squareup.okhttp3:logging-interceptor 3.2.0 喜欢: 它只是打印: 到底发生了什么? -编辑- 记录器不会显示在主线程上执行请求的错误,因此请小心。
问题内容: 任何人都可以在python中建议一种记录方法: 每天记录日志旋转 旋转日志时的压缩 可选-删除最早的日志文件以保留X MB的可用空间 可选-sftp日志文件到服务器 感谢您的任何答复 问题答案: 每天进行日志轮换: 使用TimedRotatingFileHandler 日志压缩 :设置参数。(请注意,此“技巧”仅适用于Python2。’bz2’不再被视为Python3中的编码。) 可选
问题内容: 我正在做一个项目,目前正在用log4j实现一些日志记录,我很好奇我应该如何实现日志。我要介绍的两个实现如下: 第一选择 将超类的单个日志用于该类和所有子类: 第二种选择 为每个类,上级和下级使用单独的日志: 什么更有意义,为什么? 问题答案: 我也不会 相反,我会在两种情况下都使用正确的类。 如果您不进行大量日志记录(无论如何是个好主意),则可以改用一种方法。 如果有一个类经常调用它,
如何从python脚本关闭pyspark日志记录?请注意:我不想对spark logger属性文件进行任何更改。
如何将Tomcat9的内部日志记录(catalina和localhost)重定向到log4j2? 虽然Tomcat和Log4j的旧版本有很多指南,但我找不到任何关于Tomcat 9和Log4J2的“完整”指南;Apache Tomcat 9文档指向“替代日志框架提供的说明”,Apache Log4j文档说明(2.更正的jar名称): Log4j可以用作Apache Tomcat的日志记录框架。这种
我想用IntelliJ IDEA2018.3.4将控制台输出记录到一个文件中。 我找到了这个答案,但是,我需要的是日志文件来记录多次运行,相反,最后一次运行会覆盖日志文件。 根据官方文档,我应该通过勾选“run/Debug Configurations”中的“Skip Content”复选框来获得连续日志记录,但我仍然只能获得日志中的最后一次运行。 我这样做对吗?还是有别的办法?