问题标签 [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.
websphere - 共享引擎如何查找流程步骤调用所需的资源?
我在 WebSphere 上使用共享流程引擎,我想了解引擎如何查找流程步骤调用所需的资源(我的流程应用程序附带的自定义代码)。是否应用了线程上下文切换?
java - 无法使用 log4j2 中的路由附加程序基于 ThreadContext 映射值创建多个日志文件
我在 12c 上构建的 oracle adf 应用程序中使用 log4j2 jar。
要求:根据会话创建多个日志文件,并能够动态更改日志记录属性。
Log4j2.xml 文件
我正在调用一个实用程序类,其中在记录后设置和清除线程上下文值。
问题:即使我更改了每个会话的线程上下文值,我也没有看到正在创建多个文件。所有日志都附加到一个文件中。但是当我重新启动服务器时,会生成一个新文件,并且所有会话日志都会再次附加到它上面。
谢谢。
java - log4j 中“ThreadContext”的替代方案
我一直在做一个使用 log4j2 的项目,在这个项目中我使用 ThreadContext。现在我又开始使用 log4j (1),它不提供 ThreadContext。我可以使用 ThreadContext 有什么好的选择吗?谷歌搜索还没有给我任何好的想法,所以我希望这里有人可以提供一些意见。
java - 将上下文传递给异步 Logger
我正在尝试从 http 客户端记录原始请求/响应。我正在按照这些日志记录说明中的 log4j2 配置进行操作。
HttpAsync 客户端依赖:- httpasyncclient(4.1.1 版)
log4j2.xml
它打印得很好,但线程上下文没有传递到线路记录器上。
例子 :-
如何将 ThreadContext 传递给记录器?
谢谢。
java - 空线程上下文支持 log4j2 中的场景处理
我正在尝试迁移到 log4j2。在 RollingFile Appender 我添加如下:
我们知道 %x 用于将堆栈元素打印到每个 logger 语句的末尾。
现在,如果我的堆栈最初是空的,它会给我下面的空括号。
[01/10/17 12:17:37:116 IST] main Example2 WARN (Example2.java:52) 10 是数字 []
那么我该如何处理这个空栈场景呢?
.net - 使用 ThreadContext 而不是 HttpContext?
我有一个 3 层架构(控制器/服务/存储库)以及一个用于所有层都需要的模型的域。每一层都包括域,每一层都包括它的“父”层。所以存储库 -> 服务 -> Api
当请求进入 Api 时,会完成一些身份验证和授权。多个组织共享相同的表,因此此身份验证还包括范围内的组织信息。我称之为ApiContext
. 由于此信息在 Api 层中解析,因此更高层级别无法访问。
一般来说,我看到人们在这里使用 HttpContext 来传递请求上下文,但我试图阻止服务和存储库层包含 WebApi。
为了让 ApiContext 上链,我正在考虑使用 ThreadContext ,其中 ApiContext 有一个Current
由请求过滤器设置的字段。
我不熟悉 ThreadContext 但我很确定 HttpContext 使用它,所以我认为我应该使用它。
关于 ThreadContext 的问题。
使用异步方法会破坏 ThreadContext 吗?使用 Thread.Run(() => {}) 会破坏 ThreadContext 吗?有什么理由我不应该在这里使用 ThreadContext 吗?
c# - 如何在属于不同类的不同线程之间共享数据?
我最近在阅读有关 async/await 的内容,我想知道如何在属于不同类的不同线程之间共享数据?假设我们HttpContext
在某个 Web 应用程序中有 。此上下文包含有关userId
等sessionId
的信息。我们的 Web 应用程序提供了一些数据,这些数据由在另一台计算机上执行的某些控制台应用程序使用。如果此控制台应用程序发生错误,我会将其写入日志文件。userId
并且sessionId
也应该写入这个日志文件。但是在这个控制台应用程序中创建的每个线程都有自己的上下文。所以,我正在寻找一种设置userId
和sessionId
线程上下文的方法。我不想使用一些静态类或volatile
字段。我在下面放置了一个简单的控制台应用程序示例。
log4j - log4j2 isThreadContextMapInheritable 属性用法
我正在尝试根据设置为 ThreadContext 的键记录 Java 应用程序的事件以分隔日志文件。但是即使在系统属性中将“log4j2.isThreadContextMapInheritable”设置为“true”后,我的密钥也没有到达子线程(在 MouseEvent 上创建)。有人请帮我解决这个问题。
我的主要方法:
}
按钮框架类:
}
log4j2.properties 文件:
multithreading - 操作系统如何确定调用 GetCurrentThreadId() 的线程的身份?
我试图了解操作系统如何确定哪个线程是当前线程(例如,当线程调用gettid()
或时GetCurrentThreadId()
)。由于进程地址空间在所有线程之间共享,因此无法选择保留线程 ID。它必须是每个线程独有的东西(即存储在其上下文中)。如果我是一名操作系统开发人员,我会将其存储在一些仅在内核模式下可读的内部 CPU 寄存器中。我用谷歌搜索了很多,但没有发现任何类似的问题(好像它非常明显)。
那么它是如何在 Linux 或 Windows 等真实操作系统中实现的呢?
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