我在Azure中有一个应用程序洞察资源。在我们的Java应用程序中,我们有一个log4j.xml文件,它根据服务名称写入多个日志文件。
我正在将Application Insights appender添加到日志记录中,并且能够在Application Insights资源中看到不同日志文件的所有日志。但是,我无法在Application Insights中通过日志文件名进行筛选,因此跟踪日志是没有用处的。
有没有一种方法可以将日志文件名放入日志事件属性中?这样,在AppInsights中,我们就可以通过日志文件名进行筛选,并读取它们,就像我们在那里有日志文件一样。
编辑:我们的log4j.xml看起来像这样,其中包含了aiAppender以了解应用程序
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="fileout" class="org.apache.log4j.DailyRollingFileAppender">
<param name="datePattern" value="'.'yyyyMMdd"/>
<param name="file" value="${app.install.home}/log/${app.server.name}-${app.service.process.host}.log"/>
<param name="append" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %5p [%t] (%C) - %m%n"/>
</layout>
</appender>
<appender name="aiAppender"
class="com.microsoft.applicationinsights.log4j.v1_2.ApplicationInsightsAppender">
</appender>
<root>
<priority value ="INFO" />
<appender-ref ref="fileout"/>
<appender-ref ref="aiAppender" />
</root>
可以实现TelemetryInitializer以将服务名称添加到可用于分组的telemetry属性中。
遥测初始值设定项应如下所示:
public class ServiceNameInitializer implements TelemetryInitializer {
@Override
public void initialize(Telemetry telemetry) {
if (telemetry instanceof TraceTelemetry) {
telemetry.getProperties().put("ServiceName", ServiceNameFromConfigurationOrProcessName);
}
}
}
注意,条件可以删除-这将为所有遥测类型添加属性。
实现初始化器后,将其添加到配置文件中的TelemetryInitializers元素中:
<TelemetryInitializers>
.
.
<Add type="your.initializer.package.ServiceNameInitializer"/>
</TelemetryInitializers>
问题内容: 我们有几个同时运行的作业,它们必须为log4j使用相同的配置信息。他们都使用相同的附加程序将日志转储到一个文件中。有没有一种方法可以让每个作业动态命名其日志文件,以使它们保持独立? 谢谢 汤姆 问题答案: 您可以为每个作业传递Java系统属性吗?如果是这样,您可以像这样进行参数化: 然后在您的log4j.properties中: 您可以使用主机环境(例如)中的值填充Java系统属性,该
我想根据模块名编写日志文件。例如,一个日志文件用于用户管理模块,一个日志文件用于产品模块等。 我的项目包结构如下所示; 我想写日志消息从(com.mycompany.service.user和com.mycompany.controller.user)到文件,和到文件。 我知道我可以创造像贝娄这样的伐木工人 但是这样的话,我必须添加这么多的伐木工人。我不能用通配符或或正则表达式来命名这样的东西吗?
要有效地管理Web服务器,就有必要反馈服务器的活动、性能以及出现的问题。Apache HTTP服务器提供了非常全面而灵活的日志记录功能。本文将阐述如何配置文件以及如何理解日志内容。 安全警告 任何人只要对Apache存放日志文件的目录具有写权限,也就当然地可以获得启动Apache的用户(通常是root)的权限,绝对不要随意给予任何人存放日志文件目录的写权限。细节请参见安全方面的提示。 另外,日志文
Navicat 提供数个日志文件记录在 Navicat 已运行的动作,它们在子目录 logs,例如: C:\Users\Guest\Documents\Navicat\Premium\logs\。你可以在选项中改变日志文件的位置。 HttpDump.log 保存从你的 HTTP 服务器答复的数据。 LogHistory.txt 记录在 Navicat 数据库及数据库对象上全部已运行的作业上的全部
Navicat Monitor 日志文件具有各种服务器错误和信息的详细记录。这些文件可以帮助跟踪 Navicat Monitor 的任何问题。请按照以下步骤下载日志文件: 前往“ 配置”。 点击“关于”。 滚动到“诊断”部分。 点击“检索全部日志文件”以下载包含日志文件的一份 .zip 文件。
Navicat 提供数个日志文件记录在 Navicat 已执行的操作,它们位于“logs”目录,例如:C:\Users\Guest\Documents\Navicat\Premium\logs\。你可以在选项中更改日志文件的位置。 文件 描述 history.log 保存在 Navicat 数据库和数据库对象上所有已运行的操作的所有语句或脚本。若要在“历史日志查看器”打开 history.log