当前位置: 首页 > 知识库问答 >
问题:

应用程序洞察在java中使用log4js进行日志记录

洪通
2023-03-14

Azure应用程序使用java中的log4j框架洞察日志消息,如下所示。

https://docs.microsoft.com/en-us/azure/azure-monitor/app/java-trace-logs

共有1个答案

锺离鸿
2023-03-14

如果您只是需要记录消息。您可以为NodeJS使用日志包。

安装

npm i log

这是可配置的通用日志工具,环境和表示无关,具有日志级别和命名空间(调试样式)支持

// Default logger writes at 'info' level
const log = require("log");

// Log 'info' level message:
log("some info message %s", "injected string");

// Get namespaced logger (debug lib style)
log = log.get("my-lib");

// Log 'info' level message in context of 'my-lib' namespace:
log("some info message in 'my-lib' namespace context");

// Namespaces can be nested
log = log.get("func");

// Log 'info' level message in context of 'my-lib:func' namespace:
log("some info message in 'my-lib:func' namespace context");

// Log 'error' level message in context of 'my-lib:func' namespace:
log.error("some error message");

// log output can be dynamically enabled/disabled during runtime
const { restore } = log.error.disable();
log.error("error message not really logged");
// Restore previous logs visibiity state
restore();
log.error("error message to be logged");

可用日志级别

适用的syslog级别的镜像(按严重性顺序):

debug-调试信息(默认情况下隐藏)info-纯信息性消息(默认情况下隐藏)notection-condition normal,但重要警告(也别名为warn)-condition warning error-condition error-通知带有恢复机制的错误(因此报告为日志而不是未捕获的异常)注意:critical,alert,energency不会公开,因为似乎不适合JS应用程序上下文中的用例,这些错误应该作为典型异常公开

输出消息格式日志不强制处理任何特定参数。仍然建议采用类似printf的消息格式,因为所有当前可用的Writer都设置为支持这种格式。占位符支持反映了以node.js格式实现的util

node.js文档节选:

第一个参数是包含零个或多个占位符标记的字符串。每个占位符标记都被相应参数的转换值替换。支持的占位符有:%s-字符串。
%d-数字(整数或浮点值)。
%i-整数。
%f-浮点值。
%j-JSON。如果参数包含循环引用,则替换为字符串“[Circular]”。
%o-object。具有通用JavaScript对象格式的对象的字符串表示形式。类似于带有选项{showhidden:true,depth:4,showproxy:true}的util.inspect()。这将显示完整的对象,包括不可枚举的符号和属性。
%o对象。具有通用JavaScript对象格式的对象的字符串表示形式。类似于不带选项的util.inspect()。这将显示不包括不可枚举符号和属性的完整对象
%%-单个百分号('%')。这不会消耗参数。日志编写器配置开发人员注意:为了跨环境兼容性,建议基于sprintf-kit实现

要写入日志,需要在进程的主(启动)模块中初始化预选的日志写入器。

可用日志编写器列表log-node-用于典型的node.js进程log-aws-lambda-用于AWS lambda环境注意:如果缺少某个编写器,请建议一个PR

日志可见性默认可见性取决于环境(有关更多信息,请参阅选定的日志编写器),大多数情况下通过以下环境变量设置:

LOG_LEVEL(默认为注意)所有日志将从其开始(向上)公开的最低日志级别。

LOG_DEBUG要在低于LOG_LEVEL阈值的级别公开的命名空间的最终列表

列表以逗号分隔,例如foo,-foo:bar(公开所有foo,但不公开foo:bar)。

LOG_TIME rel(default)-记录记录器初始化后经过的时间abs-记录ISO 8601格式的绝对时间Tests$npm test支持的项目跨浏览器兼容性:

 类似资料:
  • 嗯,这个例子看起来很不完整,因为它从来没有提到关键字。通过查看源代码,我看到了一个示例(测试?)它在log4j.xml中使用了,但对如何使用或调试实际的记录器没有太多解释。 关于如何实际使用/实现ApplicationInsightsAppender for Log4J,有没有人有任何指示? 以下是github https://github.com/microsoft/applicationins

  • 我们如何区分哪个日志来自哪个应用程序,是否想把所有日志混在一个地方? 我们有一个现有的应用程序,并且在整个应用程序中有几个log语句,这就是我们选择Log4Net appender来了解应用程序的原因。

  • Azure应用程序洞察或日志分析的用例是什么? 我正在使用APIM和Azure函数,并希望对请求执行日志记录。应用洞察和日志分析哪一个最合适? https://docs.microsoft.com/en-gb/Azure/Azure-monitor/overview 更新 特别是关于APIM使用的Azure应用程序洞察与日志分析的任何信息?

  • 我们正在使用Spring引导将指标发送到应用程序洞察我们正在使用应用程序洞察日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志日志。 下面是我们在logj2-spring.xml中使用的附加程序 ** 我们在应用洞察搜索屏幕上看到日志,但是我有几个问题。 > 是否有一种方法可以

  • 我想有一个共享的应用程序insights实例,将保存来自不同微服务运行的所有日志。 或者说,共享应用程序insights实例并将所有日志和遥测都放在一堆中是不是一个坏主意?

  • 我正在设置一个新的web应用程序,通过Application Insights登录。我已经安装了AI,并且看到了所有预期的遥测(服务器请求、失败的请求等),但没有通过ILogger发送日志。我已经看过所有类似的问题,我可以找到这样,但没有解决我的问题。 我正在使用。NET 5和2.17版。Microsoft的0(最新版本)。应用程序指示灯。AspNetCore-nuget包。连接字符串和检测键显示