/*** 日志对象(构造函数)* @param id* @constructor*/
function MyLogger(id) {id = id || 'ADSLogWindow';//私有属性//日志窗口的DOM节点var logWindow = null;//私有方法//用受保护的方法创建日志窗口var createWindow = function () {//取得新窗口在浏览器中居中方知识的左上角位置var browserWindowSize = ADS.getBrowserWindowSize();var top = ((browserWindowSize.height - 200) / 2) || 0;var left = ((browserWindowSize.width - 200) / 2) || 0;//创建作为日志窗口的DOM节点//使用受保护的logWindow属性维护引用logWindow = document.createElement('ul');//指定ID值,以便必要时在DOM树中能够识别它logWindow.setAttribute('id', id);//在屏幕中居中定位日志窗口logWindow.style.position = 'absolute';logWindow.style.top = top + 'px';logWindow.style.left = left + 'px';//设置固定的大小并允许窗口内容滚动logWindow.style.width = '200px';logWindow.style.height = '200px';logWindow.style.overflow = 'scroll';//添加一些样式以美化外观logWindow.style.padding = '0';logWindow.style.margin = '0';logWindow.style.border = '1px solid black';logWindow.style.backgroundColor = 'white';logWindow.style.listStyle = 'none';logWindow.style.font = '10px/10px Verdana, Tahoma, Sans';//将其添加到文档主体中document.body.appendChild(logWindow);};//特权方法,(如果logWindow尚未定义,它还要调用受保护的createWindow()方法)/*** 向日志窗口中添加一条新纪录* @param {String} message* @return {Boolean}*/this.writeRaw = function (message) {//如果初始的窗口不存在,则创建它if (!logWindow) {createWindow();}//创建列表项并适当地添加样式var li = document.createElement('li');li.style.padding = '2px';li.style.border = '0';li.style.borderBottom = '1px dotted black';li.style.margin = '0';li.style.color = '#000';li.style.font = '12px/14px Verdana, Tahoma, Sans';//为日志节点添加信息if (typeof message === 'undefined') {li.appendChild(document.createTextNode('Message was undefined'));} else if (typeof li.innerHTML !== 'undefined') {//检查是否支持innerHTMLli.innerHTML = message;} else {li.appendChild(document.createTextNode(message));}//将这个条目添加到日志窗口logWindow.appendChild(li);return true;};
}
//公有方法
MyLogger.prototype = {/*** 对message中的尖括号进行编码以便在日志窗口中显示HTML源代码* @param {String} message*/write:function (message) {//警告message为空值时if (!message) {return this.writeRaw('ADS.log: null message');}//如果message不是字符串,则尝试调用toString()方法,//如果不存在该访问则记录对象类型if (typeof message !== 'string') {if (message.toString()) {return this.writeRaw(message);} else {return this.writeRaw(typeof message);}}//转换<和>以便innerHTML不会将message作为HTML进行解析message = message.replace(/</g, '<').replace(/>/g, '>');return this.writeRaw(message);},/*** 向日志窗口中添加加粗,红色的条目来充当标题* @param {String} message* @return {Boolean}*/header:function (message) {message = '<span style="color:white;background-color:black;font-weight:bold;padding:0 5px;">' + message + '</span>';return this.writeRaw(message);}
};if (!window.ADS) {window.ADS = {};
}window.ADS.log = new MyLogger();

  

转载于:https://www.cnblogs.com/webFrontDev/archive/2012/11/24/2786027.html

JSADS-日志对象MyLogger相关推荐

  1. 服务端设置忽略更新_深入理解Kafka服务端之日志对象的读写数据流程

    一.场景分析 在前面几篇分析过,Log类用于管理服务端日志相关的各种操作,如: 日志段管理:滚动生成新日志段.组织并管理分区下的所有日志段等 关键偏移量管理:如LogStartOffset.LEO等 ...

  2. Log4j的日志对象

    /*** DateTime: 2016/9/17 14:03* 功能:Log4j的日志对象* 思路:*/ public class Logger {private org.apache.log4j.L ...

  3. kafka日志对象(一)—— Log Segment

    kafka的高吞吐量和持久性是一大亮点,内部的日志操作是如何呢,研究明白了一定豁然开朗,至少我有种恍然大明白的感觉. kafka的日志结构 Kafka 日志对象由多个日志段对象组成,而每个日志段对象会 ...

  4. ACE库中ACE_Msg_Log日志对象浅论

    引言 ACE库提供了ACE_Msg_Log类实现较为全面的日志功能.对于该类的基本使用已经有不少文章谈论过.本文对其中几点需要注意的地方进行说明,帮助大家更好地使用该类. 1. 线程安全性       ...

  5. log4j对象改变日志级别

    log4j对象改变日志级别可批量的改变所有级别,或是根据条件改变日志级别. log4j配置文件: log4j.rootLogger=ERROR,FILE,CONSOLE,EXECPTION #log4 ...

  6. 魔方APP项目-02-服务端项目搭建,创建manage.py文件、构建全局初始化函数创建app应用对象、通过终端脚本启动项目、项目加载配置、数据库初始化、日志初始化、蓝图初始化

    服务端项目搭建 新建项目目录mofangapi,并创建虚拟环境 mkvirtualenv mofang 安装开发中使用的依赖模块 pip install flask==0.12.4 pip insta ...

  7. Java 原生日志 java.util.logging

    简介 Java 中的 Logging API 让 Java 应用可以记录不同级别的信息,它在debug过程中非常有用,如果系统因为各种各样的原因而崩溃,崩溃原因可以在日志中清晰地追溯,下面让我们来看看 ...

  8. java util logging_Java 日志系列篇一 原生 Java.util.logging

    本文网大多网络整理所得,出处太多,不一一列举 简介 Java 中的 Logging API 让 Java 应用可以记录不同级别的信息,它在debug过程中非常有用,如果系统因为各种各样的原因而崩溃,崩 ...

  9. Java之动态代理类实现日志简单实例

    开心一笑 上课呢,同桌撕了一片纸放嘴里了咬了咬,又吐回了手里. 揉了揉,揉成个球状,然后又把这东西给放嘴里,咽下去了. 我问:你干嘛呢? 这二货幽幽地说:这两天有点感冒,捏个药丸吃. 视频教程 大家好 ...

  10. 【Web UI自动化测试】Web UI自动化测试之日志收集篇(全网最全)

    本文大纲截图: 1.日志介绍[文末免费分享自动化测试学习资源] 日志: 用于记录系统运行时的信息,对一个事件的记录,也称为Log. 日志作用: 1)调试程序 2)了解系统程序运行的情况是否正常 3)系 ...

最新文章

  1. Top K算法问题的实现
  2. CCNA第二学期中文final
  3. MyBatis复习(六):MyBatis二级缓存
  4. [BZOJ1135][P3488][POI2009]LYZ[线段树+Hall定理]
  5. 性能测试指标(重要)
  6. 图像拼接——APAP算法
  7. 高斯win和linux,微软雅黑在 win 和 Linux 下安装使用的对比
  8. R:怎么在混合模型中分析随机效应的显著性
  9. K线形态识别—K线反转形态之底部反转形态
  10. 邯郸市信息产业局关于参加2007’中国河北软件与信息服务业发展国际论坛的通知...
  11. count distinct
  12. 如何理解扩张卷积(dilated convolution)
  13. 【考研资源】考研资料怎么找?这些资源网站一定要知道!
  14. 【问题解决】Invalid bound statement(not found)
  15. 最全MySQL面试题和答案
  16. The table xxxx is full处理
  17. 获取root权限及破解原理分析
  18. 蝉知 路径index.php,蝉知CMS系统部署中的一些问题的解决方法
  19. Excel实现双Y轴折线图(四条折线中有两个主轴两个副轴)
  20. C++与C语言02 结构体区别

热门文章

  1. 字典树(Trie树)的实现及应用
  2. SysUtils.AdjustLineBreaks - Unix 与 Windows 的换行符互换
  3. 腾讯云dts使用注意事项
  4. mysql hibernate id generator,hibernate annoation (三 id生成器)
  5. jquery validation用法
  6. [渝粤教育] 浙江大学 物理光学实验及仿真 参考 资料
  7. 【渝粤教育】国家开放大学2018年春季 3819-21T燃气安全管理 参考试题
  8. 【渝粤教育】国家开放大学2018年春季 0653-21T机电控制与可编程控制技术 参考试题
  9. 应用机器学习(二):k-NN 分类器
  10. SQL Server和Oracle数据库索引介绍