日志处理(三) logback 手动加载(转)
- 本文转自:http://www.2cto.com/kf/201302/191149.html
- 一共两个java文件,第一个是例子,第二个是配置文件加载类;
- LogbackTest.java
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package logbacktest;
- import ch.qos.logback.core.joran.spi.JoranException;
- import java.io.IOException;
- import org.slf4j.LoggerFactory;
- /**
- *
- * @author Administrator
- */
- public class LogbackTest {
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) throws IOException, JoranException {
- LogBackConfigLoader.load("logback-log.xml");
- org.slf4j.Logger logger = LoggerFactory.getLogger("snail");
- logger.debug("Hello");
- }
- }
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package logbacktest;
- import java.io.File;
- import java.io.IOException;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import ch.qos.logback.classic.LoggerContext;
- import ch.qos.logback.classic.joran.JoranConfigurator;
- import ch.qos.logback.core.joran.spi.JoranException;
- import ch.qos.logback.core.util.StatusPrinter;
- /**
- * Simple Utility class for loading an external config file for logback
- * @author daniel
- */
- public class LogBackConfigLoader {
- public static void load (String externalConfigFileLocation) throws IOException, JoranException{
- LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
- File externalConfigFile = new File(externalConfigFileLocation);
- if(!externalConfigFile.exists()){
- throw new IOException("Logback External Config File Parameter does not reference a file that exists");
- }else{
- if(!externalConfigFile.isFile()){
- throw new IOException("Logback External Config File Parameter exists, but does not reference a file");
- }else{
- if(!externalConfigFile.canRead()){
- throw new IOException("Logback External Config File exists and is a file, but cannot be read.");
- }else{
- JoranConfigurator configurator = new JoranConfigurator();
- configurator.setContext(lc);
- lc.reset();
- configurator.doConfigure(externalConfigFileLocation);
- StatusPrinter.printInCaseOfErrorsOrWarnings(lc);
- }
- }
- }
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <!-- encoder 默认配置为PatternLayoutEncoder -->
- <encoder>
- <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss} %msg%n</pattern>
- </encoder>
- </appender> www.2cto.com
- <appender name="debug" class="ch.qos.logback.core.FileAppender">
- <File>log/debug.log</File>
- <Append>true</Append>
- <encoder>
- <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss} %msg%n</pattern>
- </encoder>
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>TRACE</level>
- </filter>
- </appender>
- <logger name="snail" level="TRACE" additivity="false">
- <appender-ref ref="debug"/>
- </logger>
- </configuration>
日志处理(三) logback 手动加载(转)的更多相关文章
- 使用angular.bootstrap() 完成模块的手动加载
之前我们看到使用ng-app指令,可以实现模块的自动加载.现在我们看下,angular中如何手动加载模块.需要使用到angular.bootstrap这个函数. <html> <he ...
- AngularJS中多个ng-app(手动加载模块)
1.当有多个ng-app时:(首先是要加载angularJS) <div ng-app=""> <p>姓名:<input type="tex ...
- angularjs 手动加载
利用ng-app可以完成自动加载,如果不利用ng-app.那么使用bootstrarp实现手动加载模块 <html> <head> <script src="a ...
- TP中手动加载类库
加载第三方类库,包括不符合命名规范和后缀的类库,以及没有使用 命名空间或者空间和路径不一致的类库.可手动加载. // 导入Org类库包 Library/Org/Util/Date.class.php类 ...
- AngularJS之手动加载模块app和controller
使用ng的页面中一般都是使用模块自动加载,页面的结构一般是这样的 加载angularjs脚本 加载业务代码脚本(或者写在script标签中) html结构代码(带有ng指令) 就像这样 app.htm ...
- mybatis(三)懒加载
懒加载的好处: 所谓懒加载(lazy)就是延时加载,延迟加载.什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载.至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适,因为 ...
- java基础-jdbc——三种方式加载驱动建立连接
String url = "jdbc:mysql://localhost:3306/student?Unicode=true&characterEncoding=utf-8" ...
- [Q]手动加载菜单方法
一般情况下,安装程序会自动安装依云软件菜单,但可能由于某些原因未能自动安装的话,您可以手动加载菜单,步骤如下: 在AoutCAD命令行输入"CUILOAD",会弹出"加载 ...
- EF的三种数据加载方式
EF的关联实体加载有三种方式:Lazy Loading,Eager Loading,Explicit Loading,其中Lazy Loading和Explicit Loading都是延迟加载. (一 ...
随机推荐
- CENTOS --5分钟搞定Nginx安装的教程
1. 安装gcc(centos 7之后一般已自带,可以在第6步失败后再安装) yum install gcc gcc-c++ 2. 安装pcre yum install -y pcre pcre-de ...
- 介绍MFC框架中涉及到的设计模式(二)
接着上一篇<介绍MFC框架中涉及到的设计模式(一)>介绍 单例模式(Singleton Pattern) 单例模式是一种经常使用的软件设计模式.在它的核心结构中仅仅包括一个被称为单例类的特 ...
- iOS UIWebView 获取内容实际高度,关闭滚动效果
本文转载至 http://my.oschina.net/Khiyuan/blog/341535 iOS UIWebView 获取内容实际高度,关闭滚动效果 近期做东西,将 UIWebView 嵌套 ...
- Tomcat Server启动报错:Multiple Contexts have a path of "/east".
原因是 conf/server.xml 文件中多了一个<Context></Context>标签,路径有重复,把他删掉就好了.
- jQuery照片墙相册
效果体验:http://keleyi.com/keleyi/phtml/jqtexiao/30.htm 本特效支持jquery的版本为1.4.3,暂时不支持1.9以上jquery版本. 代码: < ...
- DocumentFragment 不支持 innerHTML
在需要多次使用 innerHTML 的地方,一般是推荐用 DocumentFragment 来缓存,最后一次性插入 body,从而减少浏览器的渲染,提高性能,不过最近也发现一个 bug: Docume ...
- 基于spring的shiro配置
shiro是一个特别简单,易用的框架,在此记录一下shiro的使用配置. 首先,创建四张表:user role user_role permission,分别为用户.角色.用户与角色关系表和权限 ...
- Code Forces 650 C Table Compression(并查集)
C. Table Compression time limit per test4 seconds memory limit per test256 megabytes inputstandard i ...
- 提交任务到spark master -- 分布式计算系统spark学习(四)
部署暂时先用默认配置,我们来看看如何提交计算程序到spark上面. 拿官方的Python的测试程序搞一下. qpzhang@qpzhangdeMac-mini:~/project/spark-1.3. ...
- pycharm自定义代码片段
pycharm自定义代码片段 目录 (一)通用阶段 0 .新建.py文件模板:2 0 .pycharm中添加自定义代码片段:一图全知道:3 1 .定义类:classin 描述 ...