当前位置: 首页 > 面试题库 >

java.util.logging.Logger在哪里存储日志

卢知
2023-03-14
问题内容

这可能是一个愚蠢的问题,但是我对Java Logger有点迷茫

private static Logger logger = Logger.getLogger("order.web.OrderManager");
logger.info("Removed order " + id + ".");

我在哪里可以看到日志?同样来自java.util.logging.Logger库的这句话:

在每次记录调用时,记录器最初都会根据记录器的有效日志级别对请求级别(例如SEVERE或FINE)进行廉价检查。如果请求级别低于日志级别,则日志记录调用立即返回。

通过此初始(便宜)测试后,记录器将分配一个LogRecord来描述记录消息。然后,它将调用过滤器(如果存在)对记录是否应该发布进行更详细的检查。如果通过,它将随后将LogRecord发布到其输出Handlers。

这是否意味着如果我有3条request level日志:

logger.log(Level.FINE, "Something");
logger.log(Level.WARNING, "Something");
logger.log(Level.SEVERE, "Something");

log level是SEVERE,我可以看到所有三个日志,如果我log level是WARNING,则看不到SEVERE日志,对吗?以及如何设置log level


问题答案:

我在哪里可以看到日志?

在日志文件或标准输出中,具体取决于您的实际日志处理程序配置。可以通过属性文件或直接通过日志记录API进行设置。

这是否意味着如果我有3个请求级别日志…

SEVEREFINE您的示例中显示的3个消息中最重要(优先级最高)和最不重要的消息类型。因此,如果您的日志级别为SEVERE,则仅SEVERE记录消息。如果level为FINE,则记录所有3条消息。

当在实际生产环境中,您可能只想记录错误和警告时(希望它们很少见,但您想了解它们),这非常有用,因此可以将日志级别设置为WARNING。但是,在您的开发环境中,例如调试问题时,即使它创建了大量的日志数据并降低了应用程序的速度,您仍希望在日志中查看所有信息。因此,您将日志级别设置为FINEFINEST

这是Java
Logging
的很好的介绍。

更新: 上一页中的一个简单示例,用于配置记录器以级别登录到文件FINEST

Handler fh = new FileHandler("%t/wombat.log");
Logger.getLogger("").addHandler(fh);
Logger.getLogger("com.wombat").setLevel(Level.FINEST);

要登录到控制台,请将FileHandler以上内容替换为ConsoleHandler

Handler ch = new ConsoleHandler();
Logger.getLogger("").addHandler(ch);

不过,这只是一个示例-在实际应用中,最好通过config属性文件配置日志记录。



 类似资料:
  • 问题内容: 我编写了一个简单的测试应用程序,以将某些内容记录到日志文件中。我正在使用 linux mint ,在应用程序执行后,我尝试使用以下命令查看日志: 但是文件消息既不经过测试也不存在。在下面可以找到我的代码。也许我做错了什么,文件没有存储在那儿,或者我需要启用Linux Mint中的登录功能。 问题答案: 在我的Ubuntu机器上,我可以在看到输出。 在RHEL / CentOS计算机上,

  • 问题内容: Google最相关的结果似乎表明,为了访问日志,我们必须将自己的日志表解绑定到数据库中,并使Reporting Services对其进行写入 。 简而言之:Reporting Services是否一定要有纯文本日志文件?如果是,这些文件存储在哪里? 问题答案: 假设您将SQL 2008安装到默认位置:C:\ Program Files \ Microsoft SQL Server \

  • 问题内容: 我在共享主机上,并由fastcgi运行Cpanel,Apache,PHP。PHP在哪里存储错误日志? 还有什么其他方法可以在共享主机环境中找到错误日志,而不必遍历整个站点结构来查找error_log文件? 我可以访问(我正在使用PHP版本5.2.16)。 问题答案: 如果PHP是apache2模块,则PHP将存储错误日志。共享主机通常将日志文件存储在您的根目录子文件夹中。但是…如果您有

  • 问题内容: 因此,我有了这种elasticsearch安装,可以在用logstash插入数​​据时使用kibana可视化它们。 conf文件中的所有内容均已注释,因此它使用的是相对于elasticsearch文件夹的默认文件夹。 这怎么可能? 但是,此命令将删除数据: 谢谢。 ps:忘了说我在窗户上 问题答案: 如果您在Linux上安装了ES,则默认数据文件夹位于(CentOS)或(Ubuntu)

  • 我无法让这个C#解决方案(点击下载-666MB或在GitHub上浏览此处)编译: 我得到的错误是 此项目引用了此计算机上缺少的NuGet包。使用NuGet包还原来下载它们。如需详细资讯,请参阅http://go.microsoft.com/fwlink/?LinkID=322105.遗失的档案是..\ packages \ accord . 3 . 8 . 0 \ build \ accord .

  • 问题内容: 被存储在客户端或服务器上的变量? 问题答案: 变量存储的位置由PHP的配置确定。通常这是在Linux / Unix系统上。如果无法100%确定,请使用此功能查看您的特定设置,方法是在您域的中创建具有以下内容的文件: