解决log4j多个日志都写到一个文件

之前客户端程序由于Websockt包依赖的log4j,就用log4j写日志了,Web用的log4j2没毛病。用log4j的多个logger的日志都写到一个文件里了,查了很多资料都没解决。今天闲了解决一下。

最后好使的配置

# 设置日志根
log4j.rootLogger = INFO,Exception,Debug
#  additivity的作用在于 children-logger是否使用 rootLogger的配置,默认是开启true
log4j.addivity.org.apache=false
# 输出到日志文件
log4j.logger.Exception=INFO,Exception
log4j.additivity.Exception = false
log4j.appender.Exception.encoding=UTF-8
log4j.appender.Exception = org.apache.log4j.DailyRollingFileAppender
log4j.appender.Exception.File = logs/Exception.log
log4j.appender.Exception.Append = true
log4j.appender.Exception.Threshold = INFO
log4j.appender.Exception.layout = org.apache.log4j.PatternLayout
log4j.appender.Exception.ImmediateFlush=true
log4j.appender.Exception.BufferedIO=false
log4j.appender.Exception.BufferSize=0  
log4j.appender.Exception.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ]  %m%nlog4j.logger.Debug=INFO,Debug
log4j.additivity.Debug = false
log4j.appender.Debug.encoding=UTF-8
log4j.appender.Debug = org.apache.log4j.DailyRollingFileAppender
log4j.appender.Debug.File = logs/Debug.log
log4j.appender.Debug.Append = true
log4j.appender.Debug.Threshold = INFO
log4j.appender.Debug.layout = org.apache.log4j.PatternLayout
log4j.appender.Debug.ImmediateFlush=true
log4j.appender.Debug.BufferedIO=false
log4j.appender.Debug.BufferSize=0  
log4j.appender.Debug.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ]  %m%n

关键点是logger第一位是日志级别
在这里插入图片描述

各种查资料和问了人工智能,那东西问常规的还行,稍微偏一点的问题就跟人工智障一样
在这里插入图片描述

log4j2采用滚动日志配置和限制每个日志文件的大小
在这里插入图片描述

写日志工具类

package Monitor.Util;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;/*** 写日志工具类*/
public class LogUtils {//调试日志static final Logger loggerDebug = LoggerFactory.getLogger("Debug");//异常日志static final Logger exceptionDebug = LoggerFactory.getLogger("Exception");/*** 书写调试日志* @param message 日志内容*/public static void WriteDebugLog(String message){loggerDebug.info(message);}/*** 书写异常日志* @param message 描述* @param exception 异常*/public static void WriteExceptionLog(String message, Exception exception){exceptionDebug.error(message, exception);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CompletableFuture详解~设置任务结果

CompletableFuture 提供以下方法,可以主动设置任务结果。 boolean complete(T value) boolean completeExceptionally(Throwable ex) 第一个方法,主动设置 CompletableFuture 任务执行结果,若返回 true,表示设置成功。如果返回 …

Scrapy 爬虫去重效率优化之 Bloom Filter的算法的对接

From:https://cloud.tencent.com/developer/article/1084962 Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中https://www.cnblogs.com/adc8868/p/7442306.html scrapy redis bloomfilter :https://github.co…

为什么 AI 工程师要懂一点架构?

作者 | 王咏刚(公众号ID:ban-qing-ren)AI 时代,我们总说做科研的 AI 科学家、研究员、算法工程师离产业应用太远,这其中的一个含义是说,搞机器学习算法的人,有时候会因为缺乏架构(In…

深度优先搜索遍历与广度优先搜索遍历

深度优先遍历过程 1、图的遍历 和树的遍历类似,图的遍历也是从某个顶点出发,沿着某条搜索路径对图中每个顶点各做一次且仅做一次访问。它是许多图的算法的基础。 深度优先遍历和广度优先遍历是最为重要的两种遍历图的方法。它们对无向图和有…

CompletableFuture详解~CompletionStage

CompletableFuture 分别实现两个接口 Future与 CompletionStage。 Future 接口大家都比较熟悉,这里主要讲讲 CompletionStage。 CompletableFuture 大部分方法来自CompletionStage 接口,正是因为这个接口,CompletableFuture才有如此强大功能…

Python 异步 IO 、协程、asyncio、async/await、aiohttp

From :廖雪峰 异步IO :https://www.liaoxuefeng.com/wiki/1016959663602400/1017959540289152 Python Async/Await入门指南 :https://zhuanlan.zhihu.com/p/27258289 Python 生成器 和 yield 关键字:https://blog.csdn.net/free…

智能语音简史:这场技术革命从哪开始?

来源:与非网1952年,贝尔实验室(Bell Labs)制造一台6英尺高自动数字识别机“Audrey”,它可以识别数字0~9的发音,且准确度高达90%以上。并且它对熟人的精准度高,而对陌生人…

四角号码检字法及查字方法的简介

四角号码检字法 由王云五(1888—1979)发明,汉语词典常用检字方法之一,用最多5个阿拉伯数字来对汉字进行归类。四角号码检字法用数字0到 9表示一个汉 字 四角的十种笔形,有时在最后增加一位补码。   四角号码检字法歌…

精益创业~如何驾驭愿景

开发-测量-认知 反馈循环 循环中把总时间缩至最短 要把科学的方法运用到新创企业中,我们必须找到哪些假设是需要测试的。这是新创企业计划中风险最大的部分,这部分内容依赖 信念飞跃 Leap-of-Faith 式的大胆假设。其中最重要的两个假设是 价值假设 和 增…

如何在CLI命令行下运行PHP脚本,同时向PHP脚本传递参数?

如何在命令行下运行PHP脚本[带参数] 创建一个简单的文本文件&#xff0c;其中包含有以下PHP代码&#xff0c;并把它保存为hello.php&#xff1a;<?phpecho "Hello from the CLI";?>现在&#xff0c;试着在命令行提示符下运行这个程序&#xff0c;方法是调用C…

Python 中 异步协程 的 使用方法介绍

静觅 崔庆才的个人博客&#xff1a;Python中异步协程的使用方法介绍&#xff1a;https://cuiqingcai.com/6160.html Python 异步 IO 、协程、asyncio、async/await、aiohttp&#xff1a;https://blog.csdn.net/freeking101/article/details/85286199 1. 前言 在执行一些 IO 密…

半导体终极武器光刻机:为何中国难望ASML项背?!有了全套图纸也做不出来

来源&#xff1a; XuS风险创投行指甲盖大小的芯片&#xff0c;密布千万电线&#xff0c;纹丝不乱&#xff0c;需要极端精准的照相机——光刻机。光刻机精度&#xff0c;决定了芯片的上限。EUV半导体业的终极武器这全靠总部后头那栋最高机密的巨型厂房&#xff0c;里头身穿无尘衣…

CompletableFuture详解~getNow

最简单的例子就是使用一个预定义的结果创建一个完成的CompletableFuture,通常我们会在计算的开始阶段使用它。 static void completedFutureExample() {CompletableFuture cf CompletableFuture.completedFuture("message");assertTrue(cf.isDone());assertEquals(…

AI 与人类未来

来源&#xff1a;腾讯网摘要&#xff1a;今天的人类学&#xff0c;依托协同进化理论&#xff0c;对AI充满信心。 社会产生前后&#xff0c;人类遭遇的进化机制不同。产生之前&#xff0c;是纯粹生态的进化机制&#xff0c;由偶然性和适应性控制&#xff0c;由创造性进化的跃迁…

试玩C++ 操作页面控件

最近数字和金山吵的热火朝天的&#xff0c;群里有人说网友的投票可能有工具刷出来的&#xff0c;觉得应该很有意思&#xff0c;就想自己试一下&#xff0c;玩了半天终于可以操作页面进行投票了&#xff0c;但这个投票做了IP限制&#xff0c;所以工具也无用武之地啊&#xff01;…

浅谈 Windows API 编程

原文地址&#xff1a;http://blog.sina.com.cn/s/blog_46d85b2a01010qpt.html http://blog.sina.com.cn/s/articlelist_1188584234_0_1.html WinSDK 是编程中的传统难点&#xff0c;曾经听有一个技术不是很好的朋友乱说什么给你 API 谁都会用&#xff0c;其实并非那么简单&…

CompletableFuture详解~runAsync

运行一个简单的异步阶段 这个例子创建一个一个异步执行的阶段&#xff1a; static void runAsyncExample() {CompletableFuture cf CompletableFuture.runAsync(() -> {assertTrue(Thread.currentThread().isDaemon());randomSleep();});assertFalse(cf.isDone());sleepE…

Visual Studio “类视图”和“对象浏览器”图标

类视图”和“对象浏览器”显示一些图标&#xff0c;每个图标表示不同类型的符号&#xff0c;如命名空间、类、函数或变量。下表对显示的图标进行说明&#xff0c;并对每个图标进行描述。 图标说明图标说明 命名空间 方法或函数 类 运算符 接口 属性 结构 字段或变量 联…

【数据结构】数据结构知识思维导图

From&#xff1a;https://blog.csdn.net/flowing_wind/article/details/81431354 思维导图源文件&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Z44pX_jn3P6L4BSS13WmUA 提取码&#xff1a;zmga 数据结构知识思维导图&#xff1a;

特斯拉VS Waymo:谁将赢得无人驾驶汽车竞赛?

来源&#xff1a;腾讯科技据外媒报道&#xff0c;现在正有一场从硅谷延伸到底特律的竞赛正在进行&#xff0c;即谁能最先制造出比人类司机驾车更安全的无人驾驶汽车&#xff1f;与几年前相比&#xff0c;这是一项更为艰巨的任务&#xff0c;因为人类司机了解更多东西&#xff0…