- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个使用套接字的多线程客户端服务器应用程序。当找到新的连接时,进一步的执行将转移到使用新的 Executors 线程池的新线程。
我想在该客户端的所有日志语句中记录客户端 ID。问题是我不想仅仅为了传递客户端 ID 而修改方法签名。
我想到的解决方案是:
第一个应该可以。但我喜欢第二种选择,因为一种。我可以从调试器中找到客户端 IDb.记录器库可以配置为显示线程名称。因此不需要对日志语句进行任何更改,它也适用于库内的记录器。
除了 javadoc 中提到的那些之外,使用 thread.setName() 的注意事项有哪些?它如何影响性能?调用 thread.setName() 的峰值频率约为每秒 200 次,平均约为每秒 0.3 次。
最佳答案
如果你使用 Log4j,有一个特定的机制来处理这种类型的日志记录模式,分为两个类 org.apache.log4j.NDC和 org.apache.log4j.MDC (“嵌套和映射的诊断上下文”)。
浏览NDC vs MDC - Which one should I use?看看哪个最适合您的特定情况。
这是另一个链接,它更详细地描述了 MDC 的使用:Build Flexible Logs With log4j - O'Reilly Media
请注意,MDC/NDC 使用的底层存储机制(我相信)无论如何都是 ThreadLocal。
关于java - Thread.setName(name) 注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5532864/
大家好,因为我是 CoffeeScript 的新手,所以我对此感到困惑。我正在关注一本名为“https://www.montecassino.org/images/data/attachments/0
我是一名学生,正在尝试为项目构建一个 Restful API。我对此很陌生,所以如果它很容易解决,请原谅。 我正在使用“mongoose”:“^5.3.4”,并尝试连接到 Mongo DB Atlas
我有一个数据集,其中包含一堆带有各种后缀的变量,我想将它们制作成前缀。数据集还包括一些没有任何后缀的变量。像这样的东西: df % select(ends_with("_loc")) %>%
本文整理了Java中okreplay.YamlTape.setName()方法的一些代码示例,展示了YamlTape.setName()的具体用法。这些代码示例主要来源于Github/Stackove
我想创建一个 data.table 的副本并更改新表中列的名称。当我更改 y$V1 的名称时,x$V1 的名称也会更改。为什么会这样,我该如何避免这种行为? 例子: x <- data.table(c
DT<-data.table(a=1,b=2,a=3) DT # a b a #1: 1 2 3 setnames(DT,"b","c") #Error in setnames(DT, "b",
重命名一个特定的变量我可以做例如 names(df1)[which(names(df1) == "C")] df1 A B X 1 1 2 3 我想知道 setNames() 是否也可以做到这
我正在编写一个图像拼图游戏,代码的一部分是将用户选择的碎片与正确图像的碎片进行比较。 每个图像片段都已作为 ImageIcon 添加到 JButton。 需要一个标识符来区分每个图像片段并进行比较。
我有一个返回data.table的脚本,该脚本将包含一组列。我想重命名其中的一些列,但是如果没有全部列,则setnames会中断。有什么方法可以重命名而不会引起循环+错误捕获或与现有名称相交? iri
我想知道是否可以在管道代码的末尾设置列表元素的名称。 data % purrr::map(get_data) names(data) % purrr::map(get_comm
我是 Aerospike 的新手..我的命名空间有多个集合。我正在尝试在 aerospike dB 命名空间中为不同的集合设置不同的 TTL。 我不想使用分配给命名空间的默认 ttl,而是想为每个集合
我正在构建一个 swing 应用程序,它在运行时在单个类上创建了所有可视组件。每个控件都显示良好。每当声明一个组件时,都会放置一个component.setName(String);。问题是,当尝试通
我是 Aerospike 的新手..我的命名空间有多个集合。我正在尝试在 aerospike dB 命名空间中为不同的集合设置不同的 TTL。 我不想使用分配给命名空间的默认 ttl,而是想为每个集合
我刚刚看了一个名为“许多方法和实例”的 youtube 教程。他制作了一个程序,你在其中输入一些内容,它会说“你的第一个女朋友是 _”。但它太复杂了。首先是主类: import java.util.S
我正在尝试在 Struts2 中编写一个拦截器,它根据某些条件将请求重定向到不同的操作。我的拦截器工作正常,如下所示。 public String intercept(ActionInvocati
我有一个使用套接字的多线程客户端服务器应用程序。当找到新的连接时,进一步的执行将转移到使用新的 Executors 线程池的新线程。 我想在该客户端的所有日志语句中记录客户端 ID。问题是我不想仅仅为
本文整理了Java中org.eclipse.xsd.XSDAttributeGroupDefinition.setName()方法的一些代码示例,展示了XSDAttributeGroupDefinit
本文整理了Java中org.eclipse.xsd.XSDModelGroupDefinition.setName()方法的一些代码示例,展示了XSDModelGroupDefinition.setN
本文整理了Java中org.geoserver.catalog.WMTSStoreInfo.setName()方法的一些代码示例,展示了WMTSStoreInfo.setName()的具体用法。这些代
本文整理了Java中bibliothek.util.xml.XElement.setName()方法的一些代码示例,展示了XElement.setName()的具体用法。这些代码示例主要来源于Gith
我是一名优秀的程序员,十分优秀!