知识大全 使用Log4j进行日志操作

Posted

篇首语:赋料扬雄敌,诗看子建亲。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用Log4j进行日志操作相关的知识,希望对你有一定的参考价值。

使用Log4j进行日志操作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   概述   背景    在应用程序中添加日志记录总的来说基于三个目的 监视代码中变量的变化情况 周期性的记录到文件中供其他应用进行统计分析工作 跟踪代码运行时轨迹 作为日后审计的依据 担当集成开发环境中的调试器的作用 向文件或控制台打印代码的调试信息     最普通的做法就是在代码中嵌入许多的打印语句 这些打印语句可以输出到控制台或文件中 比较好的做法就是构造一个日志操作类来封装此类操作 而不是让一系列的打印语句充斥了代码的主体      Log j简介    在强调可重用组件开发的今天 除了自己从头到尾开发一个可重用的日志操作类外 Apache为我们提供了一个强有力的日志操作包 Log j     Log j是Apache的一个开放源代码项目 通过使用Log j 我们可以控制日志信息输送的目的地是控制台 文件 GUI组件 甚至是套接口服务器 NT的事件记录器 UNIX Syslog守护进程等 我们也可以控制每一条日志的输出格式 通过定义每一条日志信息的级别 我们能够更加细致地控制日志的生成过程 最令人感兴趣的就是 这些可以通过一个配置文件来灵活地进行配置 而不需要修改应用的代码     此外 通过Log j其他语言接口 您可以在C C++ Net PL/SQL程序中使用Log j 其语法和用法与在Java程序中一样 使得多语言分布式系统得到一个统一一致的日志组件模块 而且 通过使用各种第三方扩展 您可以很方便地将Log j集成到J EE JINI甚至是SNMP应用中     本文介绍的Log j版本是 作者试图通过一个简单的客户/服务器Java程序例子对比使用与不使用Log j 的差别 并详细讲解了在实践中最常使用Log j的方法和步骤 在强调可重用组件开发的今天 相信Log j将会给广大的设计开发人员带来方便 加入到Log j的队伍来吧!     一个简单的例子  我们先来看一个简单的例子 它是一个用Java实现的客户/服务器网络程序 刚开始我们不使用Log j 而是使用了一系列的打印语句 然后我们将使用Log j来实现它的日志功能 这样 大家就可以清楚地比较出前后两个代码的差别      不使用Log j     客户程序    package log j ;    import java io * ;  import * ;    /**   *   * <p> Client Without Log j </p>   * <p> Description: a sample with log j</p>   * @version    */  public class ClientWithoutLog j       /**     *     * @param args     */    public static void main ( String args [] )         String wele = null;      String response = null;      BufferedReader reader = null;      PrintWriter writer = null;      InputStream in = null;      OutputStream out = null;      Socket client = null;        try         client = new Socket ( localhost ) ;        System out println ( info: Client socket: + client ) ;        in = client getInputStream () ;        out = client getOutputStream () ;       catch ( IOException e )         System out println ( error: IOException : + e ) ;        System exit ( ) ;              try        reader = new BufferedReader( new InputStreamReader ( in ) ) ;        writer = new PrintWriter ( new OutputStreamWriter ( out ) true ) ;          wele = reader readLine () ;        System out println ( debug: Server says: + wele + ) ;          System out println ( debug: HELLO ) ;        writer println ( HELLO ) ;        response = reader readLine () ;        System out println ( debug: Server responds: + response + ) ;          System out println ( debug: HELP ) ;        writer println ( HELP ) ;        response = reader readLine () ;        System out println ( debug: Server responds: + response + ) ;          System out println ( debug: QUIT ) ;        writer println ( QUIT ) ;       catch ( IOException e )         System out println ( warn: IOException in client in readln() ) ;        System out println ( e ) ;            try        Thread sleep ( ) ;       catch ( Exception ignored )            服务器程序    package log j ;    import java util * ;  import java io * ;  import * ;    /**   *   * <p> Server Without Log j </p>   * <p> Description: a sample with log j</p>   * @version    */  public class ServerWithoutLog j       final static int SERVER_PORT = ; // this server s port      /**     *     * @param args     */    public static void main ( String args [] )       String clientRequest = null;      BufferedReader reader = null;      PrintWriter writer = null;      ServerSocket server = null;      Socket socket = null;      InputStream in = null;      OutputStream out = null;        try         server = new ServerSocket ( SERVER_PORT ) ;        System out println ( info: ServerSocket before accept: + server ) ;        System out println ( info: Java server without log j on line! ) ;          // wait for client s connection        socket = server accept () ;        System out println ( info: ServerSocket after accept: + server ) ;          in = socket getInputStream () ;        out = socket getOutputStream () ;         catch ( IOException e )         System out println( error: Server constructor IOException: + e ) ;        System exit ( ) ;            reader = new BufferedReader ( new InputStreamReader ( in ) ) ;      writer = new PrintWriter ( new OutputStreamWriter ( out ) true ) ;        // send wele string to client      writer println ( Java server without log j + new Date () ) ;        while ( true )         try           // read from client          clientRequest = reader readLine () ;          System out println ( debug: Client says: + clientRequest ) ;          if ( clientRequest startsWith ( HELP ) )             System out println ( debug: OK! ) ;            writer println ( Vocabulary: HELP QUIT ) ;                    else             if ( clientRequest startsWith ( QUIT ) )               System out println ( debug: OK! ) ;              System exit ( ) ;                        else              System out println ( warn: Command +    clientRequest + not understood ) ;              writer println ( Command + clientRequest    + not understood ) ;                               catch ( IOException e )           System out println ( error: IOException in Server + e ) ;          System exit ( ) ;                         迁移到Log j     客户程序    package log j ;    import java io * ;  import * ;    // add for log j: import some package  import apache log j PropertyConfigurator ;  import apache log j Logger ;  import apache log j Level ;    /**   *   * <p> Client With Log j </p>   * <p> Description: a sample with log j< cha138/Article/program/Java/ky/201311/28526

相关参考

知识大全 Spring 与 Log4J 进行动态日志配置切换

Spring与Log4J进行动态日志配置切换  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  引言

知识大全 Log4J 日志管理系统使用心得体会

Log4J日志管理系统使用心得体会  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  简单的Logj

知识大全 在spring中应用log4j

  Logj是Apache的一个开放源代码项目通过使用Logj我们可以控制日志信息输送的目的地是控制台文件GUI组件甚至是套接口服务器NT的事件记录器UNIXSyslog守护进程等我们也可以控制每一条

知识大全 如何使用归档日志进行完全恢复

  系统环境  操作系统WindowsServer机器内存M  数据库 OracleiR()forNT企业版  安装路径C:\\ORACLE    模拟现象      先将数据库设置为归档模式    

知识大全 如何使用归档日志进行完全恢复

  系统环境  操作系统WindowsServer机器内存M  数据库 OracleiR()forNT企业版  安装路径C:\\ORACLE    模拟现象  先将数据库设置为归档模式    SQL*

知识大全 配置归档日志,让数据库管理更加顺畅

  一更改日志操作模式三步走  默认情况下Oracle数据库采用的是非归档模式但是非归档模式不能够防止因物理损坏而导致丢失数据问题为此数据库管理员可能需要把日志操作模式从非归档模式转换为归档模式其实要

知识大全 Log4j和JDBMonitor的比较

Log4j和JDBMonitor的比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Logj(

知识大全 开源项目关于web app的Log4j应用

开源项目关于webapp的Log4j应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  建立lo

知识大全 技巧分享——log4j的配制及测试程序

  写个初始化的SERVLET    packagenetwelovetennisutillog;    importjavaxservlet*;  importjavaxservlet*;  imp

知识大全 没有备份只有归档日志如何恢复数据文件

  系统环境  操作系统WindowsServer机器内存M  数据库 OracleiR()forNT企业版  安装路径C:\\ORACLE    模拟现象    可通过重建数据文件来恢复前提是归档日