log

仿log4j 写 log 代码

我的梦境 提交于 2020-03-28 15:29:48
log4j 一直有个问题无法满足我,有可能我还不知道怎么去使用它。 就是他会把项目中所有的日志信息都记到一个文件里面,而业务系统往往需要根据某个业务流程查看日志分析。 public class BusinessLogUtil { public enum Level { ERROR(40, "ERROR"), WARN(30, "WARN"), INFO(20, "INFO"), DEBUG(10, "DEBUG"), TRACE(0, "TRACE"); private int levelInt; private String levelStr; private Level(int i, String s) { this.levelInt = i; this.levelStr = s; } public int toInt() { return this.levelInt; } @Override public String toString() { return this.levelStr; } } /** * 得到记录日志所有的文件:行号 * * @return */ private static String getLineInfo() { StackTraceElement ste = new Throwable().getStackTrace()[3]; return

Vue子组件调用父组件方法

南楼画角 提交于 2020-03-28 09:09:59
第一种方法是直接在子组件中通过this.$parent.event来调用父组件的方法 父组件 <template> <div> <child></child> </div> </template> <script> import child from '~/components/dam/child'; export default { components: { child }, methods: { fatherMethod() { console.log('测试'); } } }; </script> 子组件 <template> <div> <button @click="childMethod()">点击</button> </div> </template> <script> export default { methods: { childMethod() { this.$parent.fatherMethod(); } } }; </script> 第二种方法是在子组件里用 $emit 向父组件触发一个事件,父组件监听这个事件就行了。 父组件 <template> <div> <child @fatherMethod="fatherMethod"></child> </div> </template> <script> import child from '~

Chrome 控制台不完全指南

↘锁芯ラ 提交于 2020-03-28 07:51:27
Chrome的开发者工具已经强大到没朋友的地步了,特别是其功能丰富界面友好的console,使用得当可以有如下功效: 更高「逼格」更快「开发调试」更强「进阶级的Frontender」 Bug无处遁形「Console大法好」 console.log 大家都会用log,但鲜有人很好地利用 console.error , console.warn 等将输出到控制台的信息进行分类整理。 他们功能区别不大,意义在于将输出到控制台的信息进行归类,或者说让它们更语义化。 各个所代表的语义如下: console.log :普通信息 console.info :提示类信息 console.error :错误信息 console.warn :警示信息 当合理使用上述log方法后,可以很方便地在控制台选择查看特定类型的信息。 console.log('一颗红心向太阳','吼吼~'); console.info('楼上药不能停!'); console.warn('楼上嘴太贱!'); console.error('楼上关你毛事?'); 如果再配合 console.group 与 console.groupEnd ,可以将这种分类管理的思想发挥到极致。这适合于在开发一个规模很大模块很多很复杂的Web APP时,将各自的log信息分组到以各自命名空间为名称的组里面。 console.group("app.foo

数组深拷贝的方法

最后都变了- 提交于 2020-03-28 05:46:07
方法一:for循环实现 var arr = [1,2,3,4,5] var arr2 = copyArr(arr) function copyArr(arr) { let res = [] for (let i = 0; i < arr.length; i++) { res.push(arr[i]) } return res }方法二:slice方法原理也比较好理解,他是将原数组中抽离部分出来形成一个新数组。我们只要设置为抽离全部,即可完成数组的深拷贝,如下 var arr = [1,2,3,4,5] var arr2 = arr.slice(0) arr[2] = 5 console.log(arr) console.log(arr2)方法三:concat方法原理更加粗暴。它是用于连接多个数组组成一个新的数组的方法。那么,我们只要连接它自己,即可完成数组的深拷贝。代码如下 var arr = [1,2,3,4,5] var arr2 = arr.concat() arr[2] = 5 console.log(arr) console.log(arr2) 方法四:ES6扩展运算符实现用下面的方法实现数组的深拷贝是最简单的 var arr = [1,2,3,4,5] var [ ...arr2 ] = arr arr[2] = 5 console.log(arr) console

android Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)

无人久伴 提交于 2020-03-28 05:16:54
在 Android 群里,经常会有人问我, Android Log 是怎么用的,今天我就把从网上以及 SDK 里东拼西凑过来,让大家先一睹为快,希望对大家入门 Android Log 有一定的帮助. android.util.Log常用的方法有以下 5 个: Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应 VERBOSE , DEBUG , INFO , WARN , ERROR 。 1、Log.v 的调试颜色为 黑色 的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("",""); 2、Log.d的输出颜色是 蓝色 的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择. 3、Log.i的输出为 绿色 ,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息 4、Log.w的意思为 橙色 ,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息。 5、Log.e为 红色 ,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。 下面是我做的一个简单的 LogDemo ( Step By Step):

mysql(五)-----keepalived配置mysql的高可用

不打扰是莪最后的温柔 提交于 2020-03-27 23:19:15
生产环境对数据库要求很高的,为了避免数据库的突发情况,给他做个保险--用keepalived做高可用 环境(此处ip,密码均是乱造的): 主:192.1.31.161 端口:3306 用户:vnum 密码:vnum@123 从:192.1.31.162 端口:3306 方案介绍 两台mysql互为主从,但只有master写,slave只负责读。主从通过keepalive做成高可用,当master出问题, 由slave接替master工作,即读写都在slave操作。当master恢复正常,master自动同步故障时间段数据,接替slave的写工作。 一:配置主主同步 、配置文件 master my.cnf 主要参数 log_slave_updates log-bin = mysql-bin server-id = 1 binlog-ignore-db=mysql #auto_increment_increment = 2 #auto_increment_offset = 2 slave my.cnf 主要参数 log_slave_updates log-bin = mysql-bin server-id = 2 binlog-ignore-db=mysql #auto_increment_increment = 2 #auto_increment_offset = 1 注: log

如何启用和关闭数据库的Oracle归档模式

痞子三分冷 提交于 2020-03-27 19:13:50
3 月,跳不动了?>>>   本文简单介绍如何启用和关闭数据库的Oracle归档模式。    一、shutdown normal或shutdown immediate关闭数据库 oracle培训   1 .oracle @jumper oracle]$ sqlplus "/ as sysdba"   2.SQL*Plus: Release 9.2.0.4.0 - Production on Sat Oct 15 15:48:36 2005   3.Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.   4.Connected to:   5.Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production   6.With the Partitioning option   7.JServer Release 9.2.0.4.0 - Production   8.SQL> shutdown immediate;   9.Database closed.   10.Database dismounted.   11.ORACLE instance shut down.    二、启动数据库到mount状态   1.SQL> startup mount;

linux 查看log里面的error

南笙酒味 提交于 2020-03-27 12:32:31
find / -name a.txt : 从根目录下全局搜索a.txt文件 grep “error” test.log :从test.log中过滤出包含error的文本行 grep -A 10 "error" test.log :过滤制定数据,并展示后10行 grep -B 10 "error" test.log :过滤指定数据,并展示前10行 grep -C 10 "error" test.log :过滤指定数据,并展示前后10行 文件查看 cat ./a.txt :一次性读取并打印a.txt文件里的所有信息 more ./a.txt :读取a.txt 文件,每次读取一屏,按空格键翻页 tail -200 a.txt :读取a.txt 文件的后两百行 tail -f a.txt 实时读取a.txt文件 head -10 a.txt :读取a.txt文件的前10行 来源: https://www.cnblogs.com/maxforb/p/12580321.html

使用Log Analytics监视Azure VM的创建和删除

佐手、 提交于 2020-03-27 11:33:41
随着企业对云资源使用的越来越广泛,很多企业的关注点已经不单单满足于简单的使用云,而是更关注如何把运用的更好。对于如何把云用的更好,其实我们有很多个方面可以考量,比如系统的监控,比如成本的管控等等。因此对云资源使用的合理性,成为企业越来越关注的一个重点。那么接下来我们就一起来看一下如何使用Log Analytics监视Azure VM的创建和删除,从而帮助资源的使用者来了解云上最近新增/减少了什么资源。 前面我们提过Log Analytics允许从许多Azure资源中收集诊断数据。Log Analytics可以收集的资源之一是Azure活动日志。活动日志中包括有关虚拟机创建,更新和删除的信息。下面我们就一起来看一下如何实现这一点。 将Azure活动日志连接到Log Analytics工作区 若要允许Log Analytics Workspace从Azure活动日志捕获数据,需要进入Log Analytics工作区,转到“工作区数据源”,然后单击“ Azure活动日志”。 点击“Azure活动日志”,可以确定要收集活动日志数据的Azure订阅是否已连接到Log Analytics Workspace。 点击“订阅”,将弹出以下对话框。然后点击“连接” 点击连接后,我们会看到,指定订阅的Azure活动日志现在已经收集到Log Analytics工作区。 查看收集到的数据 要查看Log

JavaScript字典

↘锁芯ラ 提交于 2020-03-27 06:52:06
3 月,跳不动了?>>> 字典中存储的是 [key , value] ,其中键名是用来查询特定的元素的。字典和集合很相似,只是集合以 [value,value] 的格式来存储数据的。字典也叫作映射。 JavaScript实现的字典 下面通过一个实际例子来创建并且使用一下字典。 function Dictionary(){ var items = {}; this.set = function(key, value){ items[key] = value; //以键作为索引来存储数据 }; this.remove = function(key){ if (this.has(key)){ delete items[key]; return true; } return false; }; this.has = function(key){ return items.hasOwnProperty(key); //return value in items; }; this.get = function(key) { return this.has(key) ? items[key] : undefined; }; this.clear = function(){ items = {}; }; this.size = function(){ return Object.keys