`
ocre
  • 浏览: 56834 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
摘自 http://www.cnblogs.com/qianlifeng/archive/2011/04/22/2024856.html   【写日志的原则】 Ⅰ.在catch后,把异常写入日志. Ⅱ.在调用第三方控件的开始和结束处. Ⅲ.在连接数据库的开始结束处. Ⅳ.除非必要,不要在循环体中加入日志,否则一旦出问题可能导致日志暴增. Ⅴ.在自己认为很重要的逻辑处写入日志.   日志在线下开发测试阶段和线上运行阶段功用不同: 线下开发测试阶段logging主要用于验证程序逻辑, 线上运行阶段主要目的是记录异常和错误,便于定位外部系统异常、程序潜在bug,快速修复。
今天碰到lognet 配置完毕后打印不出日志的问题,查阅网上资料发现,原因多是配置和使用不全。 配置步骤归结为三步: 1. project中引入log4net.dll,这里推荐使用nuget。。。简单方便快捷 2. 定义lognet配置项,可在Web.config 或者 App.config 等配置文件中定义,也可以使用独立的配置文件。 3. 在程序中显式声明使用配置项。也有两种方法,一是在Assembly.cs中[assembly: log4net.Config.XmlConfigurator(Watch = true)]或其变种, 或者在程序main方法第一条语句前加入log4ne ...
       在SqlServer中,没有单独的TRUNCATE权限。如果需要执行TRUNCATE操作,至少需要ALTER权限,运维同事基于安全因素考虑一般不愿意给开ALTER权限。这里有一种折中方法:首先由dbo建立一个存储过程 CREATE PROCEDURE [dbo].[sp_TruncateTable] @TableName varchar(50) WITH EXECUTE AS SELF AS BEGIN SET NOCOUNT ON; DECLARE @TruncateSql nvarchar(2000) SET @TruncateSql = 'TRU ...
简述公钥加密过程:     背景: 两个用户 Alice 和 Bob。               Bob 拥有一对密钥(公钥、 私钥)。     事件: Alice 需要将一段信息加密后发送给Bob。     过程:             1.  Bob 将自己的公钥发送给 Alice            2.  Alice 使用Bob的公钥对信息进行加密得到密文,然后将密文传送给            3.  Bob 使用自己的私钥对密文进行解密,得到明文信息。     一句话简述: Alice使用Bob的公钥加密,Bob使用自己的私钥解密。   简述公钥认证过程: ...
短短五句真诀,记住即可。 四舍六入五考虑      五后非零就进一            五后皆零看奇偶                  五前为偶应舍去                        五前为奇要进一
浓缩即是精华。 本文转自: http://blog.02ta.com/blog/java/thinking-in-java     第1章    对象导论   继承的关系意味着有时需要在已写好的接口类中添加新方法 向上转型这个词源于继承图的典型布局方式,通常基类在顶部而导出类在其下部散开. 抽象类的作用是不希望任何人创建基类的实际对象,而只是希望他们将对象向上转型到基类
1. 安装jar包到本地maven仓库(以heritrix1.14.4.jar为例)   mvn install:install-file -DgroupId=org.archive.heritrix -DartifactId=archive-commons -Dversion=1.14.4 -Dpackaging=jar -Dfile=/path/to/heritrix-1.14.4.jar   2. pom.xml中使用本地仓库 <!-- We add a local repository that comes with this project, for I do ...
原理在这里: http://www.cnblogs.com/allensun/archive/2011/02/16/1956532.html   构造方法如下: /** * 构造Bloom Filter * @param capacity 支持的最大元素数 * @param errorRate 期望的最大错误率 */ public LongBloomFilter(int capacity, double errorRate) { // 计算实际需要的最小位数组长度m size = (int) Math.abs(capacity * ...
    一句话:数据类型的字节数由编译器决定。    转自: http://www.cnblogs.com/augellis/archive/2009/09/29/1576501.html   常用数据类型对应字节数      可用如sizeof(char),sizeof(char*)等得出       32位编译器:       char :1个字节      char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)      short int : 2个字节      int:  4个字节      unsigned ...
     "Statelessness" 是restful风格最重要的原则。它的含义是指,客户端和服务器交互的过程中(各次请求之间)是无状态的。  无状态是针对于“状态”来说的。 一个WEB应用协议中的“状态”指的是,为两个相互关联的用户交互操作保留某种公共信息,例如用户登录信息,工作流等。 这些信息具有不同作用域,如page,request,session,application等。通常由服务器负责保存这些信息。       “无状态” 的概念逐渐流行,得益于分布式系统的发展。首先,无状态请求易于实现负载均衡。在分布式web系统下,有多个可用服务器,每个服务器都可以处理客 ...
     HTTP缓存的主要目的是为了节约网络传输(避免重复下载资源),提高交互效率(直接读取本地缓存的资源,速度一般比网络传输快)。基于这些考虑,GET方法一般都支持缓存。      HEAD请求本身不下载任何资源,这是它与GET的唯一区别。 HEAD一般用于测试网络资源的有效性(是否存在),可访问性,以及缓存的资源是否需要更新。 如何验证资源是否过期和需要更新呢,根据ResponseHeader中的MetaInfo(例如LastModified, E-tag等)来判断。  首先,我们通过GET请求获取资源,并加入缓存中, 同时记录资源的更新时间LastModified。在下次需要该资源时, ...
  详细信息见: http://www.csharpcity.com/sqlite-ado-net-c-4-0/   具体操作参考: http://www.dreamincode.net/forums/topic/157830-using-sqlite-with-c%23/    
转自:http://hi.baidu.com/%CC%D8%B0%AE%C0%B6%C1%AB%BB%A8/blog/item/5b4856122dfabd5e43a9ade7.html   top - 13:37:58 up 51 days, 20:48, 2 users, load average: 0.05, 0.03, 0.02Tasks: 290 total, 1 running, 289 sleeping, 0 stopped, 0 zombieCpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0. ...
转自:http://blog.taoyiz.com/archives/172 Linux 优先使用物理内存,当物理内存还有空闲时,linux是不会施放内存的,即时占用内存的程序已经被关闭了(这部分内存就用来做缓存了)。也就是说,即时你有2G的内存,用过一段时间后,也会被占满。这样做的好处是,启动那些刚开启过的程序、或是读取刚存取过得数据会比较快,对于服务器很有好处。 你可以用 free 指令查看一下输出,用 used 减去 buffer 和 cache,才是你运行中的程序所占用的空间,举例如下: total used free shared buffers cached Mem: ...
栈用来表示程序的运行处理逻辑,而堆用来存储数据。 java中每个线程都有一个独立于其他线程的线程栈,每个线程栈代表了不同的处理逻辑。线程栈大小一般为1M,可根据-Xss参数调整。 堆是程序存储数据(对象)的地方,堆中的数据是共享的,这样的设计一方面便于线程间交互,另一方面堆可以存储一些公共的常量、对象及缓存,节省内存。 java的数据类型可以分为基本类型和引用类型。基本类型因为大小固定,且长度均在1-8个字节,因此存储在栈中。 对象存储在堆中,对象的引用存储在栈中。   java线程栈的大小可以通过-Xss设置,当栈中存储数据比较多时,可适当调大线程栈。java.lang.StackO ...
Global site tag (gtag.js) - Google Analytics