精华内容
下载资源
问答
  • C#打印条码的几种方式

    千次阅读 2018-10-07 16:27:47
    总结一下常见的条码打印方法,其实打条码的方式很多,大概以下几种: 1.斑马打印软件制作好模板,保存为.prn格式的文件,文件格式大致如下 ^XA^LH30,0^JMA^XZ ~DG000.GRF,04096,128, ,::::::::::::::::::rQF0,::...

    C#打印条码的几种方式

    总结一下常见的条码打印方法,其实打条码的方式很多,大概有以下几种:

    1.斑马打印软件制作好模板,保存为.prn格式的文件,文件格式大致如下

    ^XA^LH30,0^JMA^XZ
    ~DG000.GRF,04096,128,
    ,::::::::::::::::::rQF0,:::,::::::::~DG001.GRF,04096,128,
    ,:::::::rQF0,:::a,:::::::::::::::::::~DG002.GRF,04096,128,
    ,:::::::::::::::rQF0,::::,::::::::::~DG003.GRF,04096,128,
    ,::::::::::::::::::::rQF0,::::,:::::^XA
    ^MMT
    ^PW1004
    ^LL1890
    ^LS0
    ^FT0,544^XG000.GRF,1,1^FS
    ^FT0,1856^XG001.GRF,1,1^FS
    ^FT0,1792^XG002.GRF,1,1^FS
    ^FT0,1728^XG003.GRF,1,1^FS
    ^FT21,449^A0N,33,33^FH\^FDUPC:^FS
    ^FT425,450^A0N,33,33^FH\^FDEAN:^FS
    ^BY1,3,18^FT604,1691^BCN,,N,N
    ^FD>:{SN1}^FS
    ^BY2,3,30^FT494,1638^BCN,,N,N
    ^FD>:{SN2}^FS

    模板中红色的字段则是需要用变量替换的,这个很简单,只需要Replace即可,然后将替换好之后的模板内容发送给打印机打印出来就行。

     

    2.使用BarTender制作btw的模板文件,文件格式即为.btw,为模板文件指定数据源,数据源的种类很多,比如数据库、文本文件等等,这里我以文本文件举例:

    首先制作好模板,

    其中Temp.ActiveCode1和Temp.ActiveCode2则是两个文本文件,文件格式为:

    ActiceCode1,ActiceCode2
    K0NBHE-T0DZDR-B3QSP6,K0NBHE-T0DZDR-B3QSP7

    程序中根据前台传入的数据,将最终的数据写入到这个数据源中,然后通过拆分这个数据源获取每一个字段,调用打印方法,

     Process.Start(bartendAdd, "/NOSPLASH  /F=\"" + btw + "\" /D=\"" + sn + "\" /P /X");

     

     

    3.通过FastReport打印

    这里重点说一下参数的传递和接收问题,其它的应该都还比较简单,我们首先创建一个模板文件,这里值得一提的是,使用FastReport.Net设计器产生的文件是以frx为后缀的文件,以FastReport.Studio设计器产生的文件是以fr3为后缀的文件,当时我也搞不清楚则个区别,后来慢慢摸索出来的。

     

    这里传入参数给报表:

     

    这里接收传入的参数值:

     

    预览一下获取参数之后的结果:

    人工智能学习大纲,小白转型利器,5万人看过

    展开全文
  • Java中打印日志的几种方式

    万次阅读 多人点赞 2017-12-23 18:15:09
    在Java 中实现记录日志的方式有很多, 1. 最简单的方式,就是system.println.out(error) ,这样直接在控制台打印消息了。 2. Java.util.logging ; 在JDK 1.4 版本之后,提供了日志的API ,可以往文件中写日志了。...

    前言

    在Java 中实现记录日志的方式有很多种,
    1. 最简单的方式,就是system.println.out(error) ,这样直接在控制台打印消息了。
    2. Java.util.logging ; 在JDK 1.4 版本之后,提供了日志的API ,可以往文件中写日志了。
    3. log4j , 最强大的记录日志的方式。 可以通过配置 .properties 或是 .xml 的文件, 配置日志的目的地,格式等等。
    4. commons-logging, 最综合和常见的日志记录方式, 经常是和log4j 结合起来使用。

    Java.util.logging –JDK 记录日志方式

    system.print 这就不用多说了,直接看一下Java api 中 logging 日志的使用例子:

    import java.io.IOException;  
    import java.util.Date;  
    import java.util.logging.FileHandler;  
    import java.util.logging.Formatter;  
    import java.util.logging.Level;  
    import java.util.logging.LogRecord;  
    import java.util.logging.Logger;  
    
    public class TestLogJava {  
    
        public static void main(String[] args) throws IOException{  
            Logger log = Logger.getLogger("tesglog");  
            log.setLevel(Level.ALL);  
            FileHandler fileHandler = new FileHandler("testlog.log");  
            fileHandler.setLevel(Level.ALL);  
            fileHandler.setFormatter(new LogFormatter());  
            log.addHandler(fileHandler);  
            log.info("This is test java util log");     
        }  
    }  
    
    class LogFormatter extends Formatter {  
        @Override  
        public String format(LogRecord record) {  
            Date date = new Date();  
            String sDate = date.toString();  
            return "[" + sDate + "]" + "[" + record.getLevel() + "]"  
                    + record.getClass() + record.getMessage() + "\n";  
        }  
    }  

    这里是在eclipse 下code 和测试的。
    首先定义一个Logeer的实例,并设置log 的级别,接着添加一个fileHander ,就是把日志写到文件中。在写入文件的时候,定义一个 LogFormatter对日志进行格式的渲染。
    默认状况下, 日志会打印到控制台。添加filehandler 后, 会同时写入文件。 如不指定路径,日志文件将位于项目根路径下。

    log4j 记录日志方式

    log4j 是apache 提供的记录日志的jar 档。
    下载路径:
    http://logging.apache.org/log4j/1.2/download.html
    这里要做的事情稍微要多一些:
    1. 下载log4j 的jar 包,放入项目的lib 包中(添加到项目的build path中)。
    2. 配置log4j.properties, 并放入项目的根路径下.(也可以放入其他路径,在读的时候需要指定)

    看一下一个配置实例:

    ### 设置日志级别 ###
    log4j.rootLogger=debug,stdout,logfile  
    
    ### 输出到控制台 ###
    log4j.appender.stdout = org.apache.log4j.ConsoleAppender  
    log4j.appender.stdout.layout = org.apache.log4j.PatternLayout  
    log4j.appender.stdout.layout.ConversionPattern = [ %p ] - [ %l ] %m%n
    
    ### 输出到日志文件 ###
    log4j.appender.logfile = org.apache.log4j.RollingFileAppender  
    log4j.appender.logfile.File = log4j.log  
    log4j.appender.logfile.MaxFileSize = 512KB  
    log4j.appender.logfile.MaxBackupIndex = 3  
    log4j.appender.logfile.layout = org.apache.log4j.PatternLayout  
    log4j.appender.logfile.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [ %p ] - [ %l ] %m%n

    这里指定了日志输出的级别 debug.
    stdout, logfile 指定日志输出的目的地。 这两个名字可以随便取,比如 A, 或B都可以。 实际的配置是 org.apache.log4j.ConsoleAppender 和RollingFileAppender 用于指定是控制台还是文件。
    另外还指定了输出的格式, 已经产生的file 的规则。

    3.测试java 文件

    import org.apache.log4j.Logger;  
    import org.apache.log4j.PropertyConfigurator;  
    
    public class TestLog4j {  
    
        public static void main(String[] args) {  
            // 1. create log  
            Logger log = Logger.getLogger(TestLog4j.class);  
            // 2. get log config file  
            PropertyConfigurator.configure("log4j.properties");  
            // 3. start log  
            log.debug("Here is some DEBUG");  
            log.info("Here is some INFO");  
            log.warn("Here is some WARN");  
            log.error("Here is some ERROR");  
            log.fatal("Here is some FATAL");  
        }  
    }  

    配置稍显麻烦,但是code 时就简单多了。

    commons-logging写日志方式

    Commons-logging 也是Apache 提供的日志jar 档。
    下载地址:http://commons.apache.org/proper/commons-logging/download_logging.cgi
    你有可能要问为什么有了log4j还有提供Commons-logging呢? 这两者有什么区别吗?
    其实从Commons-logging这个名字就可以看出来, 这应该是一个日志的共用接口。实际上, 它的确是这样一个作用,
    使用Commons-logging的LogFactory获取日志处理类时:
    1) 首先在classpath下寻找自己的配置文件commons-logging.properties,如果找到,则使用其中定义的Log实现类;
    2) 如果找不到commons-logging.properties文件,则在查找是否已定义系统环境变量org.apache.commons.logging.Log,找到则使用其定义的Log实现类;
    如果在Tomact中可以建立一个叫 CATALINA_OPTS 的环境变量,给他的值:
    Dorg.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog
    Dorg.apache.commons.logging.simplelog.defaultlog = warn
    3) 否则,查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类;
    4) 否则,使用JDK自身的日志实现类(JDK1.4以后才有日志实现类);
    5) 否则,使用commons-logging自己提供的一个简单的日志实现类SimpleLog;

    先使用第一种方式来看一个实例,配置commons-logging.properties, 使用log4j来记录日志。
    注意, commons-logging 要配合log4j 记录日志,必须把log4j的jar 包也导入到项目中。
    1. 导入log4j 和commons-logging的jar 包
    2. 配置commons-logging.properties 和 log4j.properties, 放入项目的classpath下(也就是src目录下)
    注意: 单独使用log4j 的时候,log4j.properties 默认是放在项目的根目录下。
    log4j.properties 的内容和上面完全相同。

    看一下commons-logging.properties 的配置,一句话,指定使用log4j

    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger  

    3.测试代码:

    import org.apache.commons.logging.Log;  
    import org.apache.commons.logging.LogFactory;  
    
    public class TestLogCom {  
    
        static Log log = LogFactory.getLog(TestLog.class);  
        public static void main(String[] args) {  
    
            log.debug("Here is some DEBUG");  
            log.info("Here is some INFO");  
            log.warn("Here is some WARN");  
            log.error("Here is some ERROR");  
            log.fatal("Here is some FATAL");  
        }  
    
    }  

    除了使用log4j 之外, 还可以配置
    org.apache.commons.logging.impl.Jdk14Logger 使用JDK1.4。
    org.apache.commons.logging.impl.Log4JLogger 使用Log4J。
    org.apache.commons.logging.impl.LogKitLogger 使用 avalon-Logkit。
    org.apache.commons.logging.impl.SimpleLog common-logging自带日志实现类。它实现了Log接口,把日志消息都输出到系统错误流System.err 中。
    org.apache.commons.logging.impl.NoOpLog common-logging自带日志实现类。它实现了Log接口。 其输出日志的方法中不进行任何操作。

    总结

    以上有一条
    3) 否则,查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类;
    项目同时导入log4j 和commons-logging的jar 包, 不需要配置commons-logging.properties ,只需要在classpath中配置 log4j.properties就可以使用log4j的方式记录日志。这也是目前用的比较多的记录日志的方式。

    展开全文
  • java打印日志的几种方式

    千次阅读 2018-07-19 14:25:08
    在Java 中实现记录日志的方式有很多, 1. 最简单的方式,就是system.print.out ,err 这样直接在控制台打印消息了。 2. java.util.logging ; 在JDK 1.4 版本之后,提供了日志的API ,可以往文件中写日志了。 3....

    前言

    Java 中实现记录日志的方式有很多种,

    1. 最简单的方式,就是system.print.out ,err 这样直接在控制台打印消息了。

    2. java.util.logging ; 在JDK 1.4 版本之后,提供了日志的API ,可以往文件中写日志了。

    3. log4j , 最强大的记录日志的方式。 可以通过配置 .properties 或是 .xml 的文件, 配置日志的目的地,格式等等。

    4. commons-logging, 最综合和常见的日志记录方式, 经常是和log4j 结合起来使用。

     

    java.util.logging --JDK 记录日志方式

    system.print 这就不用多说了, 

    直接看一下java api 中 logging 日志的使用例子:

    /**    
     * @author oscar999    
     * @date 2013-8-1 
     * @version V1.0    
     */  
    package com.oscar999.log;  
      
    import java.io.IOException;  
    import java.util.Date;  
    import java.util.logging.FileHandler;  
    import java.util.logging.Formatter;  
    import java.util.logging.Level;  
    import java.util.logging.LogRecord;  
    import java.util.logging.Logger;  
      
      
    public class TestLogJava {  
      
        public static void main(String[] args) throws IOException{  
            Logger log = Logger.getLogger("tesglog");  
            log.setLevel(Level.ALL);  
            FileHandler fileHandler = new FileHandler("testlog.log");  
            fileHandler.setLevel(Level.ALL);  
            fileHandler.setFormatter(new LogFormatter());  
            log.addHandler(fileHandler);  
            log.info("This is test java util log");     
        }  
      
    }  
      
    class LogFormatter extends Formatter {  
        @Override  
        public String format(LogRecord record) {  
            Date date = new Date();  
            String sDate = date.toString();  
            return "[" + sDate + "]" + "[" + record.getLevel() + "]"  
                    + record.getClass() + record.getMessage() + "\n";  
        }  
      
    }  

    这里是在eclipse 下code 和测试的。

    首先定义一个Logeer的实例,并设置log 的级别,接着添加一个fileHander ,就是把日志写到文件中。在写入文件的时候,定义一个 LogFormatter对日志进行格式的渲染。

    默认状况下, 日志会打印到控制台。添加filehandler 后, 会同时写入文件。 如不指定路径,日志文件将位于项目根路径下。

    log4j 记录日志方式

    log4j 是apache 提供的记录日志的jar 档。

    下载路径:

    http://logging.apache.org/log4j/1.2/download.html

    这里要做的事情稍微要多一些:

    1. 下载log4j 的jar 包,放入项目的lib 包中(添加到项目的build path中)。

    2.  配置log4j.properties, 并放入项目的根路径下.(也可以放入其他路径,在读的时候需要指定)

    看一下一个配置实例:

    log4j.rootLogger=debug,stdout,logfile  
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n  
      
    log4j.appender.logfile=org.apache.log4j.RollingFileAppender  
    log4j.appender.logfile.File=logfile.log  
    log4j.appender.logfile.MaxFileSize=512KB  
    log4j.appender.logfile.MaxBackupIndex=3  
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
    log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n  

    这里指定了日志输出的级别 debug.

    stdout, logfile 指定日志输出的目的地。 这两个名字可以随便取,比如 A, 或B都可以。 实际的配置是  org.apache.log4j.ConsoleAppender 和RollingFileAppender  用于指定是控制台还是文件。

    另外还指定了输出的格式, 已经产生的file 的规则。

    3. 测试java 文件

    /**    
     * @author oscar999    
     * @date 2013-8-1 
     * @version V1.0    
     */  
    package com.oscar999.log;  
      
    import org.apache.log4j.Logger;  
    import org.apache.log4j.PropertyConfigurator;  
      
    public class TestLog4j {  
      
        public static void main(String[] args) {  
            // 1. create log  
            Logger log = Logger.getLogger(TestLog4j.class);  
            // 2. get log config file  
            PropertyConfigurator.configure("log4j.properties");  
            // 3. start log  
            log.debug("Here is some DEBUG");  
            log.info("Here is some INFO");  
            log.warn("Here is some WARN");  
            log.error("Here is some ERROR");  
            log.fatal("Here is some FATAL");  
        }  
      
    }  


    配置稍显麻烦,但是code 时就简单多了。

    commons-logging写日志方式

    Commons-logging 也是Apache 提供的日志jar 档。

    下载地址:

    http://commons.apache.org/proper/commons-logging/download_logging.cgi

    你有可能要问为什么有了log4j还有提供Commons-logging呢? 这两者有什么区别吗?

    其实从Commons-logging这个名字就可以看出来, 这应该是一个日志的共用接口。实际上, 它的确是这样一个作用,

    使用Commons-logging的LogFactory获取日志处理类时:

    1) 首先在classpath下寻找自己的配置文件commons-logging.properties,如果找到,则使用其中定义的Log实现类;
    2) 如果找不到commons-logging.properties文件,则在查找是否已定义系统环境变量org.apache.commons.logging.Log,找到则使用其定义的Log实现类;
    如果在Tomact中可以建立一个叫 :CATALINA_OPTS 的环境变量 
    给 他的 值 : - Dorg.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog - Dorg.apache.commons.logging.simplelog.defaultlog = warn 
    3) 否则,查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类;
    4) 否则,使用JDK自身的日志实现类(JDK1.4以后才有日志实现类);
    5) 否则,使用commons-logging自己提供的一个简单的日志实现类SimpleLog;

     

    先使用第一种方式来看一个实例,配置commons-logging.properties, 使用log4j来记录日志。

    注意, commons-logging 要配合log4j 记录日志,必须把log4j的jar 包也导入到项目中。

    1. 导入log4j 和commons-logging的jar 包

    2. 配置commons-logging.properties 和 log4j.properties, 放入项目的classpath下(也就是src目录下)

    注意: 单独使用log4j 的时候,log4j.properties 默认是放在项目的根目录下。

    log4j.properties 的内容和上面完全相同。

    看一下commons-logging.properties  的配置

    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger  

    一句话,指定使用log4j

    3. 测试代码:

    /**    
    * @author oscar999    
    * @date 2013-8-1 
    * @version V1.0    
    */  
    package com.oscar999.log;  
      
    import org.apache.commons.logging.Log;  
    import org.apache.commons.logging.LogFactory;  
      
    public class TestLogCom {  
      
        static Log log = LogFactory.getLog(TestLog.class);  
        public static void main(String[] args) {  
      
            log.debug("Here is some DEBUG");  
            log.info("Here is some INFO");  
            log.warn("Here is some WARN");  
            log.error("Here is some ERROR");  
            log.fatal("Here is some FATAL");  
        }  
      
    }  

    除了使用log4j 之外, 还可以配置

    -org.apache.commons.logging.impl.Jdk14Logger 使用JDK1.4。
    
    -org.apache.commons.logging.impl.Log4JLogger 使用Log4J。
    
    -org.apache.commons.logging.impl.LogKitLogger 使用 avalon-Logkit。
    
    -org.apache.commons.logging.impl.SimpleLog common-logging自带日志实现类。它实现了Log接口,把日志消息都输出到系统错误流System.err 中。 
    
    -org.apache.commons.logging.impl.NoOpLog common-logging自带日志实现类。它实现了Log接口。 其输出日志的方法中不进行任何操作。
    
    

    总结

    以上有一条

    3) 否则,查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类;

    项目同时导入log4j 和commons-logging的jar 包, 不需要配置commons-logging.properties ,只需要在classpath中配置 log4j.properties就可以使用log4j的方式记录日志。这也是目前用的比较多的记录日志的方式。

    展开全文
  • java 打印日志的几种方式

    万次阅读 2016-06-23 10:58:03
    在Java 中实现记录日志的方式有很多, 1. 最简单的方式,就是system.print.out ,err 这样直接在控制台打印消息了。 2. java.util.logging ; 在JDK 1.4 版本之后,提供了日志的API ,可以往文件中写日志了。...

    前言

    Java 中实现记录日志的方式有很多种,

    1. 最简单的方式,就是system.print.out ,err 这样直接在控制台打印消息了。

    2. java.util.logging ; 在JDK 1.4 版本之后,提供了日志的API ,可以往文件中写日志了。

    3. log4j , 最强大的记录日志的方式。 可以通过配置 .properties 或是 .xml 的文件, 配置日志的目的地,格式等等。

    4. commons-logging, 最综合和常见的日志记录方式, 经常是和log4j 结合起来使用。


    java.util.logging --JDK 记录日志方式

    system.print 这就不用多说了, 

    直接看一下java api 中 logging 日志的使用例子:

    [java] view plain copy
    1. /**    
    2.  * @author oscar999    
    3.  * @date 2013-8-1 
    4.  * @version V1.0    
    5.  */  
    6. package com.oscar999.log;  
    7.   
    8. import java.io.IOException;  
    9. import java.util.Date;  
    10. import java.util.logging.FileHandler;  
    11. import java.util.logging.Formatter;  
    12. import java.util.logging.Level;  
    13. import java.util.logging.LogRecord;  
    14. import java.util.logging.Logger;  
    15.   
    16.   
    17. public class TestLogJava {  
    18.   
    19.     public static void main(String[] args) throws IOException{  
    20.         Logger log = Logger.getLogger("tesglog");  
    21.         log.setLevel(Level.ALL);  
    22.         FileHandler fileHandler = new FileHandler("testlog.log");  
    23.         fileHandler.setLevel(Level.ALL);  
    24.         fileHandler.setFormatter(new LogFormatter());  
    25.         log.addHandler(fileHandler);  
    26.         log.info("This is test java util log");     
    27.     }  
    28.   
    29. }  
    30.   
    31. class LogFormatter extends Formatter {  
    32.     @Override  
    33.     public String format(LogRecord record) {  
    34.         Date date = new Date();  
    35.         String sDate = date.toString();  
    36.         return "[" + sDate + "]" + "[" + record.getLevel() + "]"  
    37.                 + record.getClass() + record.getMessage() + "\n";  
    38.     }  
    39.   
    40. }  

    这里是在eclipse 下code 和测试的。

    首先定义一个Logeer的实例,并设置log 的级别,接着添加一个fileHander ,就是把日志写到文件中。在写入文件的时候,定义一个 LogFormatter对日志进行格式的渲染。

    默认状况下, 日志会打印到控制台。添加filehandler 后, 会同时写入文件。 如不指定路径,日志文件将位于项目根路径下。


    log4j 记录日志方式

    log4j 是apache 提供的记录日志的jar 档。

    下载路径:

    http://logging.apache.org/log4j/1.2/download.html

    这里要做的事情稍微要多一些:

    1. 下载log4j 的jar 包,放入项目的lib 包中(添加到项目的build path中)。

    2.  配置log4j.properties, 并放入项目的根路径下.(也可以放入其他路径,在读的时候需要指定)

    看一下一个配置实例:

    [html] view plain copy
    1. log4j.rootLogger=debug,stdout,logfile  
    2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
    3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
    4. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n  
    5.   
    6. log4j.appender.logfile=org.apache.log4j.RollingFileAppender  
    7. log4j.appender.logfile.File=logfile.log  
    8. log4j.appender.logfile.MaxFileSize=512KB  
    9. log4j.appender.logfile.MaxBackupIndex=3  
    10. log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
    11. log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n  

    这里指定了日志输出的级别 debug.

    stdout, logfile 指定日志输出的目的地。 这两个名字可以随便取,比如 A, 或B都可以。 实际的配置是  org.apache.log4j.ConsoleAppender 和RollingFileAppender  用于指定是控制台还是文件。

    另外还指定了输出的格式, 已经产生的file 的规则。

    3. 测试java 文件

    [java] view plain copy
    1. /**    
    2.  * @author oscar999    
    3.  * @date 2013-8-1 
    4.  * @version V1.0    
    5.  */  
    6. package com.oscar999.log;  
    7.   
    8. import org.apache.log4j.Logger;  
    9. import org.apache.log4j.PropertyConfigurator;  
    10.   
    11. public class TestLog4j {  
    12.   
    13.     public static void main(String[] args) {  
    14.         // 1. create log  
    15.         Logger log = Logger.getLogger(TestLog4j.class);  
    16.         // 2. get log config file  
    17.         PropertyConfigurator.configure("log4j.properties");  
    18.         // 3. start log  
    19.         log.debug("Here is some DEBUG");  
    20.         log.info("Here is some INFO");  
    21.         log.warn("Here is some WARN");  
    22.         log.error("Here is some ERROR");  
    23.         log.fatal("Here is some FATAL");  
    24.     }  
    25.   
    26. }  

    配置稍显麻烦,但是code 时就简单多了。


    commons-logging写日志方式

    Commons-logging 也是Apache 提供的日志jar 档。

    下载地址:

    http://commons.apache.org/proper/commons-logging/download_logging.cgi

    你有可能要问为什么有了log4j还有提供Commons-logging呢? 这两者有什么区别吗?

    其实从Commons-logging这个名字就可以看出来, 这应该是一个日志的共用接口。实际上, 它的确是这样一个作用,

    使用Commons-logging的LogFactory获取日志处理类时:

    1) 首先在classpath下寻找自己的配置文件commons-logging.properties,如果找到,则使用其中定义的Log实现类;
    2) 如果找不到commons-logging.properties文件,则在查找是否已定义系统环境变量org.apache.commons.logging.Log,找到则使用其定义的Log实现类;
    如果在Tomact中可以建立一个叫 :CATALINA_OPTS 的环境变量 
    给 他的 值 : - Dorg.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog - Dorg.apache.commons.logging.simplelog.defaultlog = warn 
    3) 否则,查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类;
    4) 否则,使用JDK自身的日志实现类(JDK1.4以后才有日志实现类);
    5) 否则,使用commons-logging自己提供的一个简单的日志实现类SimpleLog;


    先使用第一种方式来看一个实例,配置commons-logging.properties, 使用log4j来记录日志。

    注意, commons-logging 要配合log4j 记录日志,必须把log4j的jar 包也导入到项目中。

    1. 导入log4j 和commons-logging的jar 包

    2. 配置commons-logging.properties 和 log4j.properties, 放入项目的classpath下(也就是src目录下)

    注意: 单独使用log4j 的时候,log4j.properties 默认是放在项目的根目录下。

    log4j.properties 的内容和上面完全相同。

    看一下commons-logging.properties  的配置

    [html] view plain copy
    1. org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger  
    一句话,指定使用log4j

    3. 测试代码:

    [java] view plain copy
    1. /**    
    2. * @author oscar999    
    3. * @date 2013-8-1 
    4. * @version V1.0    
    5. */  
    6. package com.oscar999.log;  
    7.   
    8. import org.apache.commons.logging.Log;  
    9. import org.apache.commons.logging.LogFactory;  
    10.   
    11. public class TestLogCom {  
    12.   
    13.     static Log log = LogFactory.getLog(TestLog.class);  
    14.     public static void main(String[] args) {  
    15.   
    16.         log.debug("Here is some DEBUG");  
    17.         log.info("Here is some INFO");  
    18.         log.warn("Here is some WARN");  
    19.         log.error("Here is some ERROR");  
    20.         log.fatal("Here is some FATAL");  
    21.     }  
    22.   
    23. }  

    除了使用log4j 之外, 还可以配置

    -org.apache.commons.logging.impl.Jdk14Logger 使用JDK1.4。
    -org.apache.commons.logging.impl.Log4JLogger 使用Log4J。
    -org.apache.commons.logging.impl.LogKitLogger 使用 avalon-Logkit。
    -org.apache.commons.logging.impl.SimpleLog common-logging自带日志实现类。它实现了Log接口,把日志消息都输出到系统错误流System.err 中。 
    -org.apache.commons.logging.impl.NoOpLog common-logging自带日志实现类。它实现了Log接口。 其输出日志的方法中不进行任何操作。

    总结

    以上有一条

    3) 否则,查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类;

    项目同时导入log4j 和commons-logging的jar 包, 不需要配置commons-logging.properties ,只需要在classpath中配置 log4j.properties就可以使用log4j的方式记录日志。这也是目前用的比较多的记录日志的方式。

    展开全文
  • makefile中添加打印信息下面几种方式 1、如果是在目标中,可以使用下面的方式 SRC := ./src/test1.c SRC += ./src/test2.c INC := ./inc/test.h $(info SRC = $(SRC)) $(warning INC = $(INC)) #注意:执行到...
  • 问:Python打印九九乘法表有几种方式? 答: 学习编程语言嵌套循环的时候,打印九九乘法表,应该是最常见、最基础的学习案例了,如果只让你用一种方式打印,我想很多人都会,但是让你想出多种方式打印,很多人可能...
  • 秋风渐起 前言 前段时间同事去面了校招生,吐槽说候选人简历里写了熟悉多线程,但是...虽然听起来很有孔乙己问茴香豆的茴有几种写法的感觉。 下面简单的介绍一下我自己想到的几种写法,欢迎补充。 正片 1. volatile .
  • Flink SQL的打印输出的几种方式

    千次阅读 2020-07-23 17:38:18
    写的博客很水平的,上了次官网推荐了。 1,正常的print() 2,在遇到FlinkSQL代码里面聚合算子的时候,会发现报错了。比如下面的代码: Exception in thread "main" org.apache.flink.table.api....
  • hive中打印日志的几种方式实现

    千次阅读 2017-11-14 02:02:00
    在debug hive的问题时,我们经常需要在源码里面增加必要的...hive里面下面个日志的实现方式。 1是常用的通过 1 org.apache.commons.logging.Log 和 1 org.apache.commons.logging.LogFa...
  • List、Set的几种打印方式

    千次阅读 2019-07-10 14:06:49
    ps:此情况仅限于添加到集合中的对象是java已类的实例对象。 java已类,代码如下: List<Object> list = new ArrayList<>(); Date date1 = new Date(); Date date2 = new Date(); String s1 ...
  • 打印Java数组你不知道的几种方式

    万次阅读 多人点赞 2020-03-31 16:23:34
    在 Java 中,数组虽然是一个对象,但并未明确的定义这样一个类,因此也就没有覆盖 toString() ...这个问题看起来挺简单的,打印数组谁不会呀,但是请你仔细想一下,你能够通过多少种方式打印,且哪种方式最优雅简洁呢?
  • 在Java 中实现记录日志的方式有很多: 1. 最简单的方式,就是system.println.out(error) ,这样直接在控制台打印消息了。 2. Java.util.logging ; 在JDK 1.4 版本之后,提供了日志的API ,可以往文件中写日志了。 3...
  • Java打印几种方法

    千次阅读 2019-06-06 08:54:46
    实现Java打印功能3种方式 javax.print.PrintService 使用javax.print包下的类来打印,可以打印文档,PDF等等文档 Doc doc = new SimpleDoc(new FileInputStream("tobeprint.pdf"), DocFlavor.BYTE_ARRAY.PDF, ...
  • 经过几个项目的洗礼,对Zebra打印机了一个初步的了解,也用了好几种方式进行通讯打印,下面我们来谈谈这几种方式的优缺点吧。 主要以下三种方法: 1.利用ZPLII指令集编写带位置信息,字体大小,打印内容等...
  • JAVA创建对象几种方式 System.out.println(s1==s2); //打印true  System.out.println(s1==s3); //打印false  执行完以上程序,内存中实际上只有两个String对象,一个是直接数,由Java虚拟机...
  • 以下需求: 两个线程,需要打印字母和数字,格式A1B2C3 … 这个问题涉及到线程的等待,唤醒,线程间通信等知识。 下面看看实现代码: import java.util.concurrent.locks.LockSupport; /** * @author liming * ...
  • 这是一个很经典的面试题:python 字典 取所有值几种方式? 三种方式: 遍历字典中的键,根据一个一个键取值 遍历字典中的值,直接打印所有值 遍历字典键值对,一对一对取值 补充:python 中的字典,类似...
  • 最近项目中要实现标签打印的功能,有几个条件 标签模板可以事先生成,用的是CodeSoft软件 标签模板里面有二维码 标签模板里面有一些变量,要求打印的时候自动填充 产线电脑上没有安装CodeSoft,即便安装也不能...
  • bug追踪的几种方式

    2020-06-30 23:02:24
    bug追踪的几种方式 (1)梳理逻辑: 最好的方式是让程序按照自己所想的方式运行,而不是频繁的依靠console.log打印结果,想要达到这种效果就要先理顺自己的逻辑,看每一次返回的值是否类型错误,判断条件是否误 ...
  • 几种编码方式

    2019-03-04 19:24:00
    学过计算机的人都知道 ASCII 码,总共 128 个,用一个字节的低 7 位表示,0~31 是控制字符如换行回车删除等;32~126 是打印字符,可以通过键盘输入并且能够显示出来。 UTF-16 说到 UTF 必须要提到 Unicode...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 878
精华内容 351
关键字:

打印方式有几种