Log

Java-Log日志

July 26, 2017
Java, Log

日志以我目前使用到的,有两个功能。 第一,在上线调试的时候查看问题所在。 第二,在线上运行的时候,出现故障回看日志查询问题所在。 总之就是查问题出在哪里,因为编译型的程序没有办法直接搞中间输出来确定问题所在,写在文件里是最好的方式了。 Java中有很多日志系统,但是根据经验,一定有一个日志的抽象层来统一各个日志系统。没错,今天就直接来用这个抽象层的日志工具:SLF4J(Simple logging facade for Java)。它允许你在后台使用任意一个日志类库。如果是在编写供内外部都可以使用的API或者通用类库,那么你真不会希望使用你类库的客户端必须使用你选择的日志类库。 如果一个项目已经使用了log4j,而你加载了一个类库,比方说 Apache Active MQ——它依赖于于另外一个日志类库logback,那么你就需要把它也加载进去。但如果Apache Active MQ使用了SLF4J,你可以继续使用你的日志类库而无需忍受加载和维护一个新的日志框架的痛苦。 日志原理 # 一般的日志都是由三个部分组成:logger、appenders、layouts。logger负责捕获记录信息,转给appender去转发到配置的目的地,layouts负责定义日志的格式。 下面就具体的介绍一下Log4j帮助理解。 Log4j # log4j 有很多优点: Log4j是高度可配置的,并可通过在运行时的外部文件配置。它根据记录的优先级别,并提供机制,以指示记录信息到许多的目的地,诸如:数据库,文件,控制台,UNIX系统日志等。 已经扩展到C/C++、C#、Perl、Python等语言中。 线程安全、速度快 多输出 也有一些缺点,比如不能保证所有日志信息都送到目的地在其出现故障的时候,会减慢程序的速度,不过这是所有日志都面临的问题,貌似也没有什么好的解决办法。 log4j 在使用的时候需要一个配置文件:log4j.properties或log4j.xml。 如果是java project项目,则在项目的根目录下创建log4j.properties而不是在src目录下。 如果是java web项目,则在src目录下创建log4j.properties配置文件,因为这个时候tomcat会去默认的加载这个配置文件,而不需要我们手动的加载log4j的配置文件。 两种配置的基本配置选项都是一样的,log4j.properties的格式是更好理解的,奈何我拿到的是个该死的xml格式的项目。直观看很丑!非常丑!xml在我这的印象分又掉了一半。 还是先介绍各个选项的内容吧,形式不重要。 选项参数 # 上面讲了日志的三个组成部分,其配置也就是针对这三个部分来搞的。 以properties的格式先介绍一下。 #配置根Logger (Loggers) log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , … #配置日志信息输出目的地 (Appenders) log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option1 = value1 … log4j.appender.appenderName.optionN = valueN #配置日志信息的格式(Layouts) log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class log4j.appender.appenderName.layout.option1 = value1 … log4j. ...

Latex写工作日志的实践

July 25, 2017
Latex, Log

最近1个月手里同时在日常环境上跑通6个应用,脑内存实在不够用,现实在召唤新的工作模式的诞生。于是有了这篇文章。 一直在寻找一种方法,能满足我记录各种东西的需求又不要太凌乱,还要不时画一下软件结构图等。我需要一种可以一站解决这个问题的解决方案,但是很遗憾,貌似并没有。所以还是决定自己搞最原始的方案,使用latex直接写工作日志吧。 工作日志不同于其他笔记,相对比较机密,也不好写在其他地方。也为以后开发日志打个基础。 Latex的Ubuntu安装 # 除了体积略大以外,并没有什么太大的缺点。latex支持的东西貌似更多,用户也更多。 顺序执行以下命令: sudo apt install texlive-latex-base sudo apt install latex-cjk-all sudo apt install texlive-latex-extra sudo apt install texlive-xetex 四个包加起来不到2G,其中第二个是中文支持包。我使用的方式是用命令行直接编译,用vim写代码。 在后续的使用过程中,你有可能会遇到有些包没有,这些包都是以xxx.sty 的形式命名的,这个时候这样来安装缺少的包: sudo apt search xxx # 查找到对应的包名,因为有的时候软件库中的名字可能不一致,有些前缀什么的。 # 从查出来的列表中选择你要的那个包然后安装就可以了 sudo apt install xxx 缺少包的情况会在编译的时候报错报出来。 还有的时候是因为缺少一些字体,在Ubuntu 上安装字体的方式如下: # 下载你的字体包到本地。 # 你可以将自己的字体都放在一起,例如~/.share/fonts/ 文件夹中,没有这个文件夹就自己建。 # 然后将字体放进来,终端进入这个文件夹后执行下面的命令 sudo mkfontscale sudo mkfontdir sudo fc-cache -fv 提醒你success就安装成功了,重新编译就可以了。 编译Latex # 编译的命令是xelatex filename.tex。编译完成以后可以打开来看效果,我一般直接使用一个makefile文件来完成这一系列操作: 编译、后台打开,清除多余文件 Makefile代码如下: all: xelatex T.tex evince T.pdf & clean: rm *. ...