Perl 使用 Log::Log4perl 输出日志的用法

用 Java 的很少有人对 log4j 感觉陌生,这是 Apache  上的项目。同时 Apache 上也有针对其他语言的 Log 组件,如 log4cxx、log4net、log4php。

所用 Perl 时也会想想:Perl 该用什么日志模块呢? log4perl?google 一下果然后,只不过它不是由 Apache 出品。
该项目原来在 http://log4perl.sourceforge.net/,现已移到 http://mschilli.github.com/log4perl/

下载地址:http://search.cpan.org/~mschilli/Log-Log4perl/ (要编译的)
使用文档:1. Tutorial(Retire your debugger, log smartly with Log::Log4perl)
             2. Manual
             3. Frequently Asked Questions

当然,你也可以用 CPAN 和 PPM(如果安装的是 ActivePerl) 来安装 Log::Log4perl 模块。 阅读全文 >>

五线谱速读方法和钢琴视奏思维方法

大家在练习新的钢琴曲时一定会经常遇到这样的问题:

1 错音不断
2 双手的配合不协调,对位有问题
3 无法连贯的弹奏下来,总是断断续续,结结巴巴
4 视奏一个新曲子很困难,弹奏几遍都无法顺下来

这些都是因为对于钢琴五线谱的读法不正确而造成的!

下面我来给大家介绍一种新而巧的方法, 使您可以做到对五线谱的速读和100%的准确

钢琴的五线谱速读方法包括四个原则 和三个要求 阅读全文 >>

Emacs 快速指南[Emacs 在带的 Tutorial]

【注意:位于【】之间的内容是译注,比如本行,下同。】

Emacs 键盘命令通常包含 CONTROL 键(有时候以 CTRL 或 CTL 来标示)和META 键(有时候用 EDIT 或 ALT 来标示)。为了避免每次都要写出全名,我们约定使用下述缩写:

 C-<chr>  表示当输入字符 <chr> 时按住 CONTROL 键。
          因此 C-f 就表示:按住 CONTROL 键再输入 f。

 M-<chr>  表示当输入字符 <chr> 时按住 META(或 EDIT 或 ALT)键。
          如果你的键盘上没有 META 、EDIT 或 ALT 键,用下述方法也等效:
          先按一下 ESC 键然后放开,再输入 <chr>。我们用 <ESC> 来表示 ESC 键。

重要提示:要退出 Emacs,请用 C-x C-c(两个连续的组合键)。下文中左边顶行的“>>”字样用来提示你尝试键盘命令。比如:

>> 现在输入 C-v (查看下一屏文字)移动到下一屏。 阅读全文 >>

Emacs 的入门操作

1. 总体说明

M 键的替代,如 M-v,表示按住 META(EDIT 或 ALT 键),再按 v。如果没有 META、EDIT 或 ALT 键,则先按下 ESC 键,然后放开,再输入 v。好在我们的键盘一般都有 ALT 键,那就是 ALT-v 吧。

查看命令帮助的方法:C-h k C-f 就能在下方窗口中看到 C-f 的使用说明

如果一行超过窗口的宽度,换行时会有反斜杠(控制台下),或转弯箭头(图形系统)标示出。

2. C-x 系列操作

这个系列的命令多与 “窗格、文件、缓冲" 的控制操作有关。
后再加

  C-c 退出   C-s(save) 保存

3. 光标的移动

C-v(助记:Move) 下移一屏,M-v 上移一屏,C-l(助记:load/Reload) 重绘屏幕,并将光标置于屏幕中央,也可以用 PageDown 和 PageUp 的滚屏。 阅读全文 >>

Vi 和 Emacs 使用点滴

1. Vi 中执行系统命令

命令模式下用 ! (Shell 命令),如
 
   :! perl test.pl

2. Vi 中拷贝、剪切、粘贴操作

    v(逐字符)或V(逐行)进入可视模式(Visual mode),然后用方向键或hjkl等移动命令就可以选择了.
拷贝: 选择完后按y;剪切: 选择完后按d;粘贴: 移动到合适的地方, 按 p, 也可以用 P

3. 控制台下的 Emacs 支持语法加亮

在 ~/.emacs 文件(没有该文件则新建一个) 中加上

(global-font-lock-mode t)

或者你进一 Emacs 中执行 M-x global-font-lock-mode 也能看到语法加亮的效果

有说在 ~/.emacs 中加上这个定制变量的 阅读全文 >>

Linux下不同文件编码的转换[转]

一、什么是编码。

字符编码(Character Encoding)可以说就是让某一字符序列匹配一个指定集合中的某一东西,常见的例子包括长短电键组合起来表示的摩斯电码(Morse Code)、Baudot code、Unicode和用二进制来表示的ASCII(American Standard Code for Information Interchange)码、这样便能够将文本在计算机中存储和通过通信网络发送出去。

字符表(Character Set)和字符编码(Character Encoding)经常被混淆。实际上Character Set(字符表)只是指一组为特定的Encoding System(编码系统)使用的符号集合,而不包含他们的数字含义或者顺序。而Character Encoding(字符编码)则包括了Character Set(字符表)和每个字符在字符编码集中的表示方法。由于历史的原因,MIME(Multipurpos Internet Mail Extensions)和使用这种编码的系统使用属于“字符集(Charset)”来表示用于将一组字符编码成一系列8位字节数据的整个系统。

摩斯电码(Morse Code)发明于1840年,用来编码字母、数字和拉丁字符,都用长短组合的电键来表示。
ASCII码发明与1963年,是由7位(7-bit)的二进制代码表示字符、数字、符号和固定长度的设备控制代码。同年,IBM使用8位(8-bit)的编码机制实现了ASCII的扩展EBCDIC(IBM's Extended Binary Coded Decimal Interchange Code)。 阅读全文 >>

Ubuntu (Linux Mint 7)下安装 IE (ies4linux)

 我安装的 Linux 是 Linux Mint 7,它是基于 Ubuntu 9.04 的发行版,它提供一种更开箱即用的用户体验。如去除了顶端的任务栏,安装后即包括了浏览器插件(如 Flash),多媒体解码器,对 DVD 播放的支持,Java 和其他组件等。它与 Ubuntu 软件仓库完全兼容。

免去游戏方面,Linux 基本能应付得了日常事物的。可偏偏有些网站与 IE 结缘太深,更不争气的还就是 BlogJava,它的编辑器在非 IE 浏览器上处理 <textarea> 不能正常,所以我要考虑装个 IE 在 Linux 上。

所用的软件是 ies4linux,复数的,可以同时安装多个版本的 IE。它用样是由 wine 来模拟运行的,所以必须先安装 wine,你可以用新立得软件包管理器来安装 wine,也可以直接用 apt-get 来安装 wine。

然后是 ie24linux 的安装,安装步骤如下: 阅读全文 >>

WAS5.x 下使用 Log4j 为何没有日志输出的详细分析及解决办法

经常碰到有人使用了 Log4j 的项目在别处运行的好好的,一放到 WAS 下发现不能输出日志了:控制台文件 SystemOut.log 中没有 Log4j 本应输出的内容,要么就只见磁盘上有一个设定的日志文件,却总是空空如也。

本文就来以一个实际的例子分析为什么会出现这样的情况,以及告诉你应如何解决。这其中也是因为 ClassLoader 在作祟。通常我们会在通用日志框架 jakarta-commons-logging 之下使用 Log4j,这也是合情理的,因为 Struts、Hibernate 等众多框架就是这么干的,然而这却是一方面的根源。分析的过程应用了前面一篇介绍的 Eclipse 远程调试 WebSphere Application Server (WAS) 方法。

测试环境和工具是:WAS 5.1+Eclipse 3.3.2+MyEclipse 6.0.1,在 Eclipse 中建立 Web  项目 testlog(此处可下载:testlog.zip),其中所用到的 jar 包只有 commons-logging.jar(V1.0.3)、log4j-1.2.11.jar。再有为了知道是哪个 ClassLoader 加载了某个类,参考了:利用 JWhich 掌握类路径,确定类路径中的什么类将被载入阅读全文 >>

Apache Commons Logging 是如何决定使用哪个日志实现类的

Apache Commons Logging 像 SLF4J 一样,是个通用日志框架,广泛应用在各个开源组件中。说其通用,是因为它本身只提供了简单的日志输出的实现(org.apache.commons.logging.impl.SimpleLog和org.apache.commons.logging.impl.NoOpLog),主要是为你统一使用其他专业日志实现(Log4j、jdk1.4 Logger、aavalon-Logkit)的方式,让你在程序中看不到具体日志实现的代码,以配置方式解藕。

那么 commons-logging 是怎么决定程序执行时该使用哪个具体的日志实现呢?这里 commons-logging 有两个步骤要做:

1. 定位 org.apache.commons.logging.LogFactory 的实现类(这一步是关键)
2. 定位到的 LogFactory 实现类决定使用哪个 org.apache.commons.logging.Log 实现

那现在我们把注意力主要集中在 commons-logging 如何定位 LogFactory 实现类上来。org.apche.commons.logging.LogFactory 是一个抽象类,所以需要一个 LogFactory 具体类。 阅读全文 >>

了解 Java ClassLoader -- 为便于阅读整理做成了一个 CHM 文件

Java 程序员还是应该对 Java ClassLoader 有所了解,曾经问过一个做 Java 的 JVM  是什么?结果是:没听过。汗颜了吧,但也不少写 JSP 的甚至是 Java 代码的真的可能不了解 ClassLoader,所以对 Classpath 仍然费解。JRE 本身就有一个 ClassLoader 层次,更别说在各种应用服务器中因为 ClassLoader 层次的因素产生了莫名其妙的问题。例如,数据库驱动有时候应该放在哪个目录中,怎么应用却加载了一个旧版的 Jar 包等等。

本篇的 Understand Java ClassLoader.chm 文件是我根据 IBM 开发者网站上的 https://www6.software.ibm.com/developerworks/cn/education/java/j-classloader/tutorial 整理而成的。以前是用 Visual CHM 工具来制作 CHM 文件,而这个呢是用 FAR 生成的,感觉 FAR 的功能要强大些。 阅读全文 >>