1. 本文转自:http://www.2cto.com/kf/201302/191149.html
  2.  
  3. 一共两个java文件,第一个是例子,第二个是配置文件加载类;
  4.  
  5. LogbackTest.java
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package logbacktest;
  6.  
  7. import ch.qos.logback.core.joran.spi.JoranException;
  8. import java.io.IOException;
  9. import org.slf4j.LoggerFactory;
  10.  
  11. /**
  12. *
  13. * @author Administrator
  14. */
  15. public class LogbackTest {
  16. /**
  17. * @param args the command line arguments
  18. */
  19. public static void main(String[] args) throws IOException, JoranException {
  20. LogBackConfigLoader.load("logback-log.xml");
  21. org.slf4j.Logger logger = LoggerFactory.getLogger("snail");
  22. logger.debug("Hello");
  23. }
  24. }
 
LogBackConfigLoader.java
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package logbacktest;
  6. import java.io.File;
  7. import java.io.IOException;
  8.  
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11.  
  12. import ch.qos.logback.classic.LoggerContext;
  13. import ch.qos.logback.classic.joran.JoranConfigurator;
  14. import ch.qos.logback.core.joran.spi.JoranException;
  15. import ch.qos.logback.core.util.StatusPrinter;
  16.  
  17. /**
  18. * Simple Utility class for loading an external config file for logback
  19. * @author daniel
  20. */
  21. public class LogBackConfigLoader {
  22.  
  23. public static void load (String externalConfigFileLocation) throws IOException, JoranException{
  24. LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
  25.  
  26. File externalConfigFile = new File(externalConfigFileLocation);
  27. if(!externalConfigFile.exists()){
  28. throw new IOException("Logback External Config File Parameter does not reference a file that exists");
  29. }else{
  30. if(!externalConfigFile.isFile()){
  31. throw new IOException("Logback External Config File Parameter exists, but does not reference a file");
  32. }else{
  33. if(!externalConfigFile.canRead()){
  34. throw new IOException("Logback External Config File exists and is a file, but cannot be read.");
  35. }else{
  36. JoranConfigurator configurator = new JoranConfigurator();
  37. configurator.setContext(lc);
  38. lc.reset();
  39. configurator.doConfigure(externalConfigFileLocation);
  40. StatusPrinter.printInCaseOfErrorsOrWarnings(lc);
  41. }
  42. }
  43. }
  44. }
  45.  
  46. }
 
附上一个简单的logback-log.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  4. <!-- encoder 默认配置为PatternLayoutEncoder -->
  5. <encoder>
  6. <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss} %msg%n</pattern>
  7. </encoder>
  8. </appender> www.2cto.com
  9. <appender name="debug" class="ch.qos.logback.core.FileAppender">
  10. <File>log/debug.log</File>
  11. <Append>true</Append>
  12. <encoder>
  13. <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss} %msg%n</pattern>
  14. </encoder>
  15. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  16. <level>TRACE</level>
  17. </filter>
  18. </appender>
  19. <logger name="snail" level="TRACE" additivity="false">
  20. <appender-ref ref="debug"/>
  21. </logger>
  22. </configuration>

日志处理(三) logback 手动加载(转)的更多相关文章

  1. 使用angular.bootstrap() 完成模块的手动加载

    之前我们看到使用ng-app指令,可以实现模块的自动加载.现在我们看下,angular中如何手动加载模块.需要使用到angular.bootstrap这个函数. <html> <he ...

  2. AngularJS中多个ng-app(手动加载模块)

    1.当有多个ng-app时:(首先是要加载angularJS) <div ng-app=""> <p>姓名:<input type="tex ...

  3. angularjs 手动加载

    利用ng-app可以完成自动加载,如果不利用ng-app.那么使用bootstrarp实现手动加载模块 <html> <head> <script src="a ...

  4. TP中手动加载类库

    加载第三方类库,包括不符合命名规范和后缀的类库,以及没有使用 命名空间或者空间和路径不一致的类库.可手动加载. // 导入Org类库包 Library/Org/Util/Date.class.php类 ...

  5. AngularJS之手动加载模块app和controller

    使用ng的页面中一般都是使用模块自动加载,页面的结构一般是这样的 加载angularjs脚本 加载业务代码脚本(或者写在script标签中) html结构代码(带有ng指令) 就像这样 app.htm ...

  6. mybatis(三)懒加载

    懒加载的好处: 所谓懒加载(lazy)就是延时加载,延迟加载.什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载.至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适,因为 ...

  7. java基础-jdbc——三种方式加载驱动建立连接

    String url = "jdbc:mysql://localhost:3306/student?Unicode=true&characterEncoding=utf-8" ...

  8. [Q]手动加载菜单方法

    一般情况下,安装程序会自动安装依云软件菜单,但可能由于某些原因未能自动安装的话,您可以手动加载菜单,步骤如下: 在AoutCAD命令行输入"CUILOAD",会弹出"加载 ...

  9. EF的三种数据加载方式

    EF的关联实体加载有三种方式:Lazy Loading,Eager Loading,Explicit Loading,其中Lazy Loading和Explicit Loading都是延迟加载. (一 ...

随机推荐

  1. CENTOS --5分钟搞定Nginx安装的教程

    1. 安装gcc(centos 7之后一般已自带,可以在第6步失败后再安装) yum install gcc gcc-c++ 2. 安装pcre yum install -y pcre pcre-de ...

  2. 介绍MFC框架中涉及到的设计模式(二)

    接着上一篇<介绍MFC框架中涉及到的设计模式(一)>介绍 单例模式(Singleton Pattern) 单例模式是一种经常使用的软件设计模式.在它的核心结构中仅仅包括一个被称为单例类的特 ...

  3. iOS UIWebView 获取内容实际高度,关闭滚动效果

    本文转载至 http://my.oschina.net/Khiyuan/blog/341535   iOS UIWebView 获取内容实际高度,关闭滚动效果 近期做东西,将 UIWebView 嵌套 ...

  4. Tomcat Server启动报错:Multiple Contexts have a path of "/east".

    原因是 conf/server.xml 文件中多了一个<Context></Context>标签,路径有重复,把他删掉就好了.

  5. jQuery照片墙相册

    效果体验:http://keleyi.com/keleyi/phtml/jqtexiao/30.htm 本特效支持jquery的版本为1.4.3,暂时不支持1.9以上jquery版本. 代码: < ...

  6. DocumentFragment 不支持 innerHTML

    在需要多次使用 innerHTML 的地方,一般是推荐用 DocumentFragment 来缓存,最后一次性插入 body,从而减少浏览器的渲染,提高性能,不过最近也发现一个 bug: Docume ...

  7. 基于spring的shiro配置

    shiro是一个特别简单,易用的框架,在此记录一下shiro的使用配置. 首先,创建四张表:user  role  user_role  permission,分别为用户.角色.用户与角色关系表和权限 ...

  8. Code Forces 650 C Table Compression(并查集)

    C. Table Compression time limit per test4 seconds memory limit per test256 megabytes inputstandard i ...

  9. 提交任务到spark master -- 分布式计算系统spark学习(四)

    部署暂时先用默认配置,我们来看看如何提交计算程序到spark上面. 拿官方的Python的测试程序搞一下. qpzhang@qpzhangdeMac-mini:~/project/spark-1.3. ...

  10. pycharm自定义代码片段

    pycharm自定义代码片段 目录 (一)通用阶段 0 .新建.py文件模板:2 0 .pycharm中添加自定义代码片段:一图全知道:3 1 .定义类:classin              描述 ...