首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

日志打印正确姿势!

实现方式统一使用: Logback框架 打日志正确方式 什么时候应该打日志 当你遇到问题时候,只能通过debug功能来确定问题,你应该考虑打日志,良好系统,是可以通过日志进行问题定为。...当你碰到if…else 或者 switch这样分支时,要在分支首行打印日志,用来确定进入了哪个分支 经常以功能为核心进行开发,你应该在提交代码前,可以确定通过日志可以看到整个流程 基本格式 必须使用参数化信息方式...不同级别的使用 ERROR: 基本概念 影响到程序正常运行、当前请求正常运行异常情况: 打开配置文件失败 所有第三方对接异常(包括第三方返回错误码) 所有影响功能使用异常,包括:SQLException...logger.error(errorMessage,ex); throw new UserServiceException(errorMessage,ex); } WARN 基本概念 不应该出现但是不影响程序...) 生产环境需要关闭DEBUG信息 如果在生产情况下需要开启DEBUG,需要使用开关进行管理,不能一直开启。

1.6K20

为什么在容器中不能 kill 1 号进程?

而容器中也是由init进程直接或间接创建了Namespace中其他进程。 linux信号 而为什么不能在容器中kill 1号进程呢?进程在收到信号后,就会去做相应处理。...运行命令 kill -9 1 里参数“-9”,就是指发送编号为 9 这个 SIGKILL 信号给 1 号进程。 为什么在容器中不能kill 1号进程? 对于不同程序,结果是不同。...如果信号被忽略了,那么 init 进程就不能收到指令了。 想要知道 init 进程为什么收到或者收不到信号,就要去看 sig_task_ignored()实现。...所以C 程序和 bash 程序不能被 SIGTERM 所杀。...0000000000004000 [root@043f4f717cb5 /]# kill 1 # docker ps CONTAINER ID IMAGE COMMAND CREATED 重点总结 “为什么在容器中不能

13310
您找到你想要的搜索结果了吗?
是的
没有找到

打印日志正确姿势和最佳实践!

想应该不仅有这痛苦,好多人都一样碰到过,可见打好日志是多么重要,因为打好日志非常有助于排查问题,打不好呢,坏外就太多了,谈谈看到问题和我使用习惯; 日志级别与配置 很多人像真的像“神”一样存在...,着实很痛苦,而且 debug 正确方式是优先使用日志,而不是一来就开 IDE 做 debug,这样效率会很低,另外,生产上不可能给你这么玩; 如果是全局配置最好还是 debug 吧,以 logback...-- 想设置项目下主包名级别为debug --!...生产不能老是问用户传什么了吧。...,可能还会导致高 cpu 和高 io; 正确打法是:log 占位符号 + 合理利用对象 toString(当然需要重写 toString,可以使用生成工具或是 lombok@data 注解)或是先判断是否是对应日志级别再打

76030

为什么程序代码不能终生责任制?

前言 知乎上有一个提问:为什么程序代码不能终生责任制? ↓↓↓ 今天,我们就这个话题,一起来做个讨论。...我们知道,诸如桥梁建造、商品房新建,这种民生建筑等建完房子之后,施工单位和相应工程师,是需要对其质量负一定责任,甚至可以说这种责任是终身制。...小伙伴们不妨先想一想,然后把你们答案,写在评论区。 回答 现在,据我多年观察现象来看,只要我们不从事非法软件研发工作,比如赌博、早期P2P金融类软件等等。...一些合理、合法软件,一般开发同学,出问题是不需要付什么法律责任,特别是离职后同学。...至于,为什么程序员不需要像建筑工程师那样,对工程质量付终身责任制这个问题,大家不妨发表一下你灼见,在评论区,与我们小伙伴一起讨论。

24230

为什么要创建一个不能被实例化

但如果有一天,你发现写了这样一个类: class People: def say(self): print(f'叫做:{self.name}') def __new...__(self): raise Exception('不能实例化这个类') kingname = People() kingname.say() 一旦初始化就会报错,如下图所示:...一个不能被初始化类,有什么用? 这就要引入我们今天讨论一种设计模式——混入(Mixins)。 Python 由于多继承原因,可能会出现钻石继承[1]又叫菱形继承。...显然,这样写会报错,因为两个类实例是不能比较大小: 但在现实生活中,当我们说 某人比另一个人大时,实际上是指某人年龄比另一人年龄大。...混入: 不能包含状态(实例变量)。 包含一个或多个非抽象方法。 参考资料 [1]钻石继承: https://en.wikipedia.org/wiki/Multiple_inheritance

3.4K10

为什么不会 C++ 不能算合格专家程序员?

1掌握 C++ 可不容易,但一旦你掌握了,就会获得丰厚回报。 通常,程序员在他们编程生涯中会使用多种编程语言。然而,我们也看到,有些程序员一直在使用同一种编程语言。...因此,现在大多数程序员都跳过了 C++ 学习,并且更喜欢那些提供更抽象开发环境现代语言。 将解释一下,为什么学习 C++ 是所有努力成为编程专家程序必修课。...这就是为什么大多数程序员使用 Go 来构建高性能云工具,因为对云环境来说,二进制文件大小并不是问题。在高性能、轻量级软件开发方面,程序员仍然喜欢用 C++ 而不是 Go。...因此,学习五种自己喜欢、精心挑选编程语言,并称它们为“最好编程语言”,是一个明智决定。 如果你仔细挑选五种编程语言,从各方面进行考虑——毫无疑问,C/C++ 也会在你名单上。...在这篇文章里介绍了最喜欢编程语言:每位开发人员都应该学习 5 种编程语言。

56050

为什么总是写不出正确、高效并发程序?| 极客时间

虽然搞了多年 Java,可许多朋友一提到“并发”就头疼: 为什么已经学习了很多相关技术,可还是搞不定并发编程? 小公司根本遇不到并发问题,高并发经验该怎么积累?平时该怎么学习?...有这些困惑很正常,因为并发编程是 Java 语言中最为晦涩知识点,它涉及操作系统、内存、CPU、编程语言等多方面的基础能力,而这些知识点看上去非常零散、独立,可实则关联性又比较强,更为考验一个程序内功...并发编程优势是可以提高程序执行效率和资源利用率,短板和难点是它会涉及线程通信、同步互斥等等相关问题。那我们应该怎么学习并发编程呢?是不是一上来就去看 Java SDK 并发包?...你知道,这些工具都是并发大师 Doug Lea 设计,这背后都隐藏着他对并发问题深刻认识。有宝令带你解读,你会有意想不到收获。 为什么推荐这个专栏? 非常落地,带你掌握解决并发问题关键。...另外,极客时间不止一次推荐过,平台内容以及讲师都非常厉害。吸收他人经验,提高自己“解决问题”能力,无疑是个人成长和提升职场竞争力最快方式。

14.9K20

为什么程序有bug(一):逻辑篇

本来是希望 when <10 之后应该continue,在写第一个when<0时候头脑还是很清晰。但是呢,当写第二个时候就用四肢写代码了,习惯性打了个return。...} 这里本来意思针对请求类型不同进行处理,但是我们在进行对比时候,用Request类型和Response类型进行比较,显然存在问题。...这种问题在进行ReView代码时候还常常想当然认为是OK。...accountService == null){ waitBind();//等待绑定成功、然后跨进程获取数据 } Info info = pushService.aidlGetInfo(); } 发现这个问题现象是程序刚启动时随机出现几次...但是,我们在清除accountID时只清除了数据库,没有清除缓存,再次登录时候用缓存值。这样就会导致程序陷入了死循环。所以在进行存储操作时,需要考虑好同步问题。

90620

为什么产品经理工资不能够比程序员高?

今天,我们不聊程序员与产品经理工作上爱恨情仇,因为之前写过类似的文章了。今天想聊得话题就是:为什么产品经理工资不能够比程序员高?...反正认为大部分程序员正常反应肯定都是:不服气,凭什么?都会多多少少产生离职念头或者想法。要是前几年遇到这种情况,肯定也是这种反应,但是现在不会这么想了。为什么呢?...产品经理需要从项目初期规划到上线乃至运营都要参与其中,很多工作都很累,很杂。 所以,认为:一个优秀产品经理工资应该是很高,会比程序员高。这个前提是:你确实能够把产品做得让程序员服气才行。...特别欣赏一句话:做产品就是拍电影,优秀产品经理等于大导演,优秀程序员等于那些片酬超高演员。大导演工资和优秀演员片酬,谁高谁低比就是技术。...如果在遇到上述情况,建议大家把眼光不要盯在工资比较上,而是自己能力上,想想自己能力到底值多少钱?

2.4K80

为什么支持微信小程序 | 观点

但因为自己贪婪,就指责他人不够开放,就有点无耻。 但世间事大抵总是如此,指责,往往引来满堂喝彩。 譬如,这篇 SeedHeart 写为什么反对微信小程序》。...你在平台上写稿子、聚用户,卖流量(只要不违反平台规则,赚多少钱微信是不抽成)。平台则得到了活跃度,并通过朋友圈广告、城市服务、微信支付等方式,获取收益。...最近,腾讯推出了自己十八周年宣传视频。在这个视频中,腾讯问了自己几个「能不能」:腾讯能不能让有价值信息传递更高效?腾讯能不能让社交网络更有温度?腾讯能不能让社会资源配置更迅捷?...腾讯能不能让社群鸿沟更加弥合? 这些能不能,同样都是可以被指责为「虚伪」言辞。但正如 keso 所言,即使假装善良,也比真诚恶要好。 至于小程序,目前来看,同样具备了这样品质——节制。...节制程序,在成功之前,谁都无法预言。即使,许多独立开发者,正梦想在全新程序生态下,更体面的生存。 他们,正打算趟下这趟清水。你呢?

72760

为什么 JavaScript parseInt(0.0000005) 打印“5”?

前言 最近开发项目时遇到一个奇怪问题,parseInt(0.0000005) === 5。正常情况下输出0是正确为什么是5呢?我们一起来探讨一下这个问题。 1. 什么时候使用parseInt?...2.关于parseInt一些事情 根据 MDN 文档,“parseInt(string, radix) 函数解析字符串参数并返回指定基数(数学数字系统中基数)整数。”...: parseInt 只能将字符串前导部分解释为整数值;它忽略任何不能解释为整数表示法一部分代码单元,并且没有给出任何此类代码单元被忽略指示。...Math.floor(0.00005); // => 0 Math.floor(0.000005); // => 0 Math.floor(0.0000005); // => 0 5.举一反三 现在,你能解释一下为什么...最后 感谢你阅读,并期待你关注和阅读更多优质文章。

15630

为什么数据库应用程序这么慢?

当然这两者是相互联系。 如果您应用程序(或同一网络上其他应用程序)生成网络流量压倒可用带宽,则这可能会增加延迟。 延迟 延迟是在应用程序和SQL Server之间发送TCP数据包所需时间。...专注于一个小型可重复工作流将让您隔离问题。 接下来问题当然是为什么要花10秒钟?缩小问题第一个也是最简单方法是将应用程序尽可能靠近SQL Server,在同一台机器上或在同一个LAN上运行。...请记住选择相关网络界面,并注意您需要在与Wireshark数据库不同计算机上运行应用程序以查看流量​​。确保您没有运行任何其他本地SQL应用程序,而不是您尝试捕获其他本地SQL应用程序。...或者,当您知道您没有带宽瓶颈时,您需要查看应用程序使用多少带宽。为此,您还需要运行靠近数据库应用程序,捕获Wireshark中数据包,并检查应用程序使用带宽。...相反,我们已经看到,企业将越来越多内存或CPU放入SQL服务器,这样做永远不会弥补网络延迟额外时间。 如果您可以确定工作流程处理时间真正用途,您可以以正确方式指导您时间和精力。

2.2K30

程序无所不能

一脸懵逼…… 是一名程序员,长相一般,水平一般,什么都一般普通程序员。...可在朋友眼中,是无所不能,只因为程序猿…… 一、收入肯定比我们高 毕业刚开始工作时候,周围同学和损友总是羡慕,刚进公司收入就比他们高出很多,很淡定,小小装X了一把,「今天请客」。...后来后来,我们就在一起了…… 三、可以破解一切密码 在大学时代,QQ空间和人人还是主流,很多同学总会问我,「能不能帮我破解某某某QQ空间密码」,「能不能知道男朋友密码,看看聊天记录」。...谁叫我是绝佳暖男呢,可是,可是,为什么不能再深入发展下去呢?其实原因很简单,因为是绝佳暖男呀。 后记 其实程序员只是一类普通职业,有混,有混不好,和其他职业一样。...很爱我职业,因为除了敲代码不知道还能做啥混口饭吃。 朋友们,你们身边有程序猿吗?

33010

用编程模拟疫情传播来告诉你: 为什么现在你还不能出门

dis_k=5036a3151e400b7b5d9cde11c9e80a1f&dis_t=1582083144 本片来自新片场创作人Ele实验室 (导演/出品人/制片人/策划/剪辑) 程序员用计算机编程方式...看完视频你就明白为什么不能出门了,千万不要放松警惕!(@Ele实验室 ) 在家憋了一段时间的人们,耐心也在一点一点消磨中。很多人已经忍不住开始想蠢蠢欲动了。...他们总有一套自己理论:我们城市才一点确诊病人,而且在距离我们很远地方,就出去一会儿,哪有那么巧合,就感染上了。没事儿!大街上都没人,戴着口罩又没事。...因此通过这一次疫情防控,为了你、、他,请以后感冒发烧生病之后,能够带个口罩,减少传染率。因为不知道你体内这一个病毒威力如何。 ?...因此一个疫情发生,必须依靠强大有力政府比如中国,和广大医院医生护士等伟大工作者们努力,所以平时请尽量尊重他们这个职业。 ?

2K10

为什么要做一名程序员?

1.黑客情节 认识计算机应该是从电影上,从最初《电子世界争霸战》,羡慕使用电脑编辑游戏并亲自到自己设计游戏场景中“玩耍”猪脚。到后来《黑客帝国》,激起了内心对计算机神秘面纱向往。...无论是在电脑还是电视上都能看到代码创造出来得东西,也想自己创作一个。...3.表白 可以上网了,看到新闻上好多程序员控制某个大厦灯光给女朋友告白场面,自己心里也痒痒,什么时候也能露一手,刷一下世贸天阶大屏幕去,给她一个惊喜。 4.代码 计算210次方。...5.挣钱多 相对于其他专业,出来做程序员还是比较靠谱,有一些经验之后工资就可以翻倍,工作机会又多,不用怕失业。而且这个行业是随着经验增加,工资随着增加。到那个公司都吃得开。...编程如同练习功夫,做越深入越觉得自己浅薄,觉得时间不够用,早早晚晚慢慢完成自己程序一生。

74580

对不起,健康码不能给你

题图摄于广州番禺 本文记录一次关于隐私保护事情。 近日,去了趟某运营商营业厅,开通一个新手机号。入门时,扫了场所码,显示是绿码。...营业员在帮我办理业务时,除了拍照身份证件外,还说要留存健康码和行程码。...这个要求就有点奇怪了,尽管我两个码都是正常,但作为从事隐私信息保护工作,对涉及自己隐私数据事情,觉得还是要和他掰斥一下。 首先,问他为什么需要留存两码?...因为进营业厅时候扫过各种健康码于是给他扣了个大帽子:过度防疫(另一个类似的帽子是“层层加码”)。...因为清楚地记得,行程码在使用时,用户只授权了用于防疫目的。至于其他目的,对不起,没授权你用,就算你理由多么冠冕堂皇,也不能随便给你。 至于他们留存健康码,更连个正当理由都没有。

37430

为什么建议线上高并发量日志输出时候不能带有代码位置

如果大家发现网上有抄袭本文章,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~ 本文是“为什么建议”系列第二篇,本系列中会针对一些在高并发场景下,对于组内后台开发一些开发建议以及开发规范要求进行说明和分析解读...往期回顾: 为什么建议在复杂但是性能关键表上所有查询都加上 force index 在业务一开始上线时候,我们线上日志级别是 INFO,并且在日志内容中输出了代码位置,格式例如: 2022-03...在上面给出线程堆栈例子中,调用打印日志方法代码位置信息就是这一行:at com.xxx.apigateway.filter.AccessCheckFilter.filter(AccessCheckFilter.java...模拟两种方式获取调用打印日志方法代码位置,与不获取代码位置会有多大性能差异 以下代码参考 Log4j2 官方代码单元测试,首先是模拟某一调用深度堆栈代码: 然后,编写测试代码,对比纯执行这个代码...由此,建议:对于微服务环境,尤其是响应式微服务环境,堆栈深度非常深,如果会输出大量日志的话,这个日志是不能带有代码位置,否则会造成严重性能衰减。

1.4K20

为什么不能照搬以前成功经验?

现在不管领导怎么催,质量故障或不能满足客户要求情况还是出现越来越频繁。也正是因为这个样子,领导也开始召开专题会议,讨论怎么解决这个问题。...正文 如果只是为了提高质量,有很多经过验证、成熟经验,不过这些经验很多并不适用于当前情况。...经常在考虑,我们公司竞争优势在哪里,或者我们公司希望在未来三到五年保持或者创造什么样竞争优势?响应速度快是不是我们优势?...但在工作中,一旦测试周期紧张了,就会有一部分测试人员会想,能不能不写计划,本来测试时间就紧张了,还要花那么多时间在计划上,值得吗?对质量提高有帮助吗?...以我面临情况为例,会有员工觉得,我们现在迭代这么频繁,可以认为是敏捷开发了。既然敏捷开发不重文档,我们就不写了吧。 说说看法: 做工作要多问思考,多问为什么,比如我们是敏捷开发吗?

74460
领券