问题标签 [threadcontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
93 浏览

websphere - 共享引擎如何查找流程步骤调用所需的资源?

我在 WebSphere 上使用共享流程引擎,我想了解引擎如何查找流程步骤调用所需的资源(我的流程应用程序附带的自定义代码)。是否应用了线程上下文切换?

0 投票
1 回答
1012 浏览

java - 无法使用 log4j2 中的路由附加程序基于 ThreadContext 映射值创建多个日志文件

我在 12c 上构建的 oracle adf 应用程序中使用 log4j2 jar。

要求:根据会话创建多个日志文件,并能够动态更改日志记录属性。

Log4j2.xml 文件

我正在调用一个实用程序类,其中在记录后设置和清除线程上下文值。

问题:即使我更改了每个会话的线程上下文值,我也没有看到正在创建多个文件。所有日志都附加到一个文件中。但是当我重新启动服务器时,会生成一个新文件,并且所有会话日志都会再次附加到它上面。

谢谢。

0 投票
1 回答
5147 浏览

java - log4j 中“ThreadContext”的替代方案

我一直在做一个使用 log4j2 的项目,在这个项目中我使用 ThreadContext。现在我又开始使用 log4j (1),它不提供 ThreadContext。我可以使用 ThreadContext 有什么好的选择吗?谷歌搜索还没有给我任何好的想法,所以我希望这里有人可以提供一些意见。

0 投票
3 回答
2791 浏览

java - 将上下文传递给异步 Logger

我正在尝试从 http 客户端记录原始请求/响应。我正在按照这些日志记录说明中的 log4j2 配置进行操作。

HttpAsync 客户端依赖:- httpasyncclient(4.1.1 版)

log4j2.xml

它打印得很好,但线程上下文没有传递到线路记录器上。

例子 :-

如何将 ThreadContext 传递给记录器?

谢谢。

0 投票
1 回答
1173 浏览

java - 空线程上下文支持 log4j2 中的场景处理

我正在尝试迁移到 log4j2。在 RollingFile Appender 我添加如下:

我们知道 %x 用于将堆栈元素打印到每个 logger 语句的末尾。

现在,如果我的堆栈最初是空的,它会给我下面的空括号。

[01/10/17 12:17:37:116 IST] main Example2 WARN (Example2.java:52) 10 是数字 []

那么我该如何处理这个空栈场景呢?

0 投票
0 回答
184 浏览

.net - 使用 ThreadContext 而不是 HttpContext?

我有一个 3 层架构(控制器/服务/存储库)以及一个用于所有层都需要的模型的域。每一层都包括域,每一层都包括它的“父”层。所以存储库 -> 服务 -> Api

在此处输入图像描述

当请求进入 Api 时,会完成一些身份验证和授权。多个组织共享相同的表,因此此身份验证还包括范围内的组织信息。我称之为ApiContext. 由于此信息在 Api 层中解析,因此更高层级别无法访问。

一般来说,我看到人们在这里使用 HttpContext 来传递请求上下文,但我试图阻止服务和存储库层包含 WebApi。

为了让 ApiContext 上链,我正在考虑使用 ThreadContext ,其中 ApiContext 有一个Current由请求过滤器设置的字段。

我不熟悉 ThreadContext 但我很确定 HttpContext 使用它,所以我认为我应该使用它。

关于 ThreadContext 的问题。

使用异步方法会破坏 ThreadContext 吗?使用 Thread.Run(() => {}) 会破坏 ThreadContext 吗?有什么理由我不应该在这里使用 ThreadContext 吗?

0 投票
1 回答
147 浏览

c# - 如何在属于不同类的不同线程之间共享数据?

我最近在阅读有关 async/await 的内容,我想知道如何在属于不同类的不同线程之间共享数据?假设我们HttpContext在某个 Web 应用程序中有 。此上下文包含有关userIdsessionId的信息。我们的 Web 应用程序提供了一些数据,这些数据由在另一台计算机上执行的某些控制台应用程序使用。如果此控制台应用程序发生错误,我会将其写入日志文件。userId并且sessionId也应该写入这个日志文件。但是在这个控制台应用程序中创建的每个线程都有自己的上下文。所以,我正在寻找一种设置userIdsessionId线程上下文的方法。我不想使用一些静态类或volatile字段。我在下面放置了一个简单的控制台应用程序示例。

0 投票
2 回答
4914 浏览

log4j - log4j2 isThreadContextMapInheritable 属性用法

我正在尝试根据设置为 ThreadContext 的键记录 Java 应用程序的事件以分隔日志文件。但是即使在系统属性中将“log4j2.isThreadContextMapInheritable”设置为“true”后,我的密钥也没有到达子线程(在 MouseEvent 上创建)。有人请帮我解决这个问题。

我的主要方法:

}

按钮框架类:

}

log4j2.properties 文件:

0 投票
3 回答
293 浏览

multithreading - 操作系统如何确定调用 GetCurrentThreadId() 的线程的身份?

我试图了解操作系统如何确定哪个线程是当前线程(例如,当线程调用gettid()或时GetCurrentThreadId())。由于进程地址空间在所有线程之间共享,因此无法选择保留线程 ID。它必须是每个线程独有的东西(即存储在其上下文中)。如果我是一名操作系统开发人员,我会将其存储在一些仅在内核模式下可读的内部 CPU 寄存器中。我用谷歌搜索了很多,但没有发现任何类似的问题(好像它非常明显)。

那么它是如何在 Linux 或 Windows 等真实操作系统中实现的呢?

0 投票
2 回答
4812 浏览

c# - Microsoft.AspNetCore.Hosting.Internal.WebHost 和 log4net.LogicalThreadContext.Properties["requestid"]

我使用 netcore2.0 并为中间件类中的每个请求设置 log4net.LogicalThreadContext 属性“requestid”以进行日志记录。

但是“Microsoft.AspNetCore.Hosting.Internal.WebHost”类在记录行时不显示此属性。

我不知道如何为“Microsoft.AspNetCore.Hosting.Internal.WebHost”设置 log4net.LogicalThreadContext.Propery["requestid"]。

我希望从头到尾绑定所有请求日志。有没有人有任何可能有帮助的见解?

问候!

更新:这是代码

在 Startup.cs Configure(IApplicationBuilder app, IHostingEnvironment env) 我已经设置为第一件事。

app.UseMiddleware<Log4NetRequestIdMiddleware>();

Log4net 配置文件>

Fileappender.log 中的其他示例(粗体标记 RequestId)

2018-04-10 14:02:28,664|信息|Microsoft.AspNetCore.Hosting.Internal.WebHost| (空) | 请求开始 HTTP/1.1 GET http://localhost ...
2018-04-10 14:02:28,956|INFO| Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker| cfb2709e3b4f40559c365ecbb08a7746 | 执行动作方法 Controllers.HealtCheckStatusController.GetHealthCheckStatus 2018-04-10 14:02:29,486|INFO| Microsoft.AspNetCore.Mvc.Internal.ObjectResultExecutor| cfb2709e3b4f40559c365ecbb08a7746 | 执行 ObjectResult,写入值 Microsoft.AspNetCore.Mvc.ControllerContext。
2018-04-10 14:02:29,510|信息| Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker| cfb2709e3b4f40559c365ecbb08a7746| 执行动作 Controllers.HealtCheckStatusController.GetHealthCheckStatus 在 564.464ms 2018-04-10
14:02:29,520|INFO|Microsoft.AspNetCore.Hosting.Internal.WebHost| (空) | 请求在 858.9575 毫秒内完成 200 应用程序/json;字符集=utf-8