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. HDU 1058 Humble Numbers (动规+寻找丑数问题)

    Humble Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  2. Linq------错误:EntityType: EntitySet 'Products' is based on type 'Product' that has no keys defined.

    解决方法: [Table("bma_products")] public class Product { //加上[Key]即可 [Key] public int pid{get; ...

  3. 【BZOJ3033】太鼓达人 暴力+欧拉回路

    [BZOJ3033]太鼓达人 Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员 ...

  4. 怎么在android实现通过浏览器点击链接打开apk

    intent://scan/#Intent;scheme=appname://appname/[频道]/[id];package=com.appname.package;end http://m.ch ...

  5. Android得到SD卡文件夹大小以及删除文件夹操作

    float cacheSize = dirSize(new File(Environment.getExternalStorageDirectory() + AppConstants.APP_CACH ...

  6. poj3735—Training little cats(特殊操作转化为矩阵操作)

    题目链接:http://poj.org/problem?id=3735 题目意思: 调教猫咪:有n只饥渴的猫咪,现有一组羞耻连续操作,由k个操作组成,全部选自: 1. g i 给第i只猫咪一颗花生 2 ...

  7. MongoDB 使用 ObjectId 代替时间

    An ObjectId is a 12-byte unique identifier consisting of: a 4-byte value representing the seconds si ...

  8. RabbitMq入门与基本使用

    这两天工作项目中用到了rabbitmq,顺便学习了一下. RabbitMq主要的使用模式有三种:工作队列,发布订阅和RPC远程调用. 1.工作队列 生产者: using System; using R ...

  9. java基础07 循环结构

    public class While02 { public static void main(String[] args) { /** * while(循环条件){ * 循环体(循环操作) * } * ...

  10. js的class属性获取、增加、移除

    2018年4月10日,北京城的第三份工作已经开始,坚信自己在这里能学到很多,加油! 贴代码,昨天回顾了一点js知识: <script> $(function(){ //赋予一个点击事件 $ ...