??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲无限乱码一二三四麻,中文字幕亚洲欧美在线,91精彩视频在线观看http://www.aygfsteel.com/jzone/category/39713.htmljava web, java wapzh-cnThu, 23 Jul 2009 19:42:45 GMTThu, 23 Jul 2009 19:42:45 GMT60File & String 输入输出http://www.aygfsteel.com/jzone/articles/288043.htmlGavin.leeGavin.leeThu, 23 Jul 2009 08:06:00 GMThttp://www.aygfsteel.com/jzone/articles/288043.html
多灵zd变的功能是由它们的子cL扩充完成的。知道了Java输入输出的基本层ơ结构以后,本文在这里想l大家一些以后可以反复应用例子,对于所有子cȝl节及其功能q不详细讨论?/p>

import java.io.*Q?/p>

public class IOStreamDemo {

      public void samples() throws IOException {

           //1. q是从键盘读入一行数?q回的是一个字W串
           BufferedReader stdin =new BufferedReader(new InputStreamReader(System.in))Q?
           System.out.print("Enter a line:")Q?br />            System.out.println(stdin.readLine())Q?/p>

           //2. q是从文件中逐行d数据

           BufferedReader in = new BufferedReader(new FileReader("IOStreamDemo.java"))Q?br />            String s, s2 = new String()Q?br />            while((s = in.readLine())!= null)
                      s2 += s + "\n"Q?br />            in.close()Q?/p>


           //3. q是从一个字W串中逐个d字节
           StringReader in1 = new StringReader(s2)Q?br />            int cQ?br />            while((c = in1.read()) != -1)
                      System.out.print((char)c)Q?/p>


           //4. q是一个字W串写入文g
           try {
                      BufferedReader in2 = new BufferedReader(new StringReader(s2))Q?br />                       PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.out")))Q?br />                       int lineCount = 1Q?br />                       while((s = in2.readLine()) != null )
                                 out1.println(lineCount++ + ": " + s)Q?br />                       out1.close()Q?br />            } catch(EOFException e) {
                      System.err.println("End of stream")Q?br />            }
      }

对于上面的例子,需要说明的有以下几点:

  1. BufferedReader是Reader的一个子c,它具有缓冲的作用Q避免了频繁的从物理讑֤中读取信息。它有以下两个构造函敎ͼ

        BufferedReader(Reader in) 
        BufferedReader(Reader in, int sz) 

  q里的sz是指定缓冲区的大?/p>

  它的基本ҎQ?/p>

             void close() //关闭?/p>

             void mark(int readAheadLimit) //标记当前位置

             boolean markSupported() //是否支持标记

             int read() //l承自Reader的基本方?/p>

             int read(char[] cbuf, int off, int len) //l承自Reader的基本方?/p>

             String readLine() //d一行内容ƈ以字W串形式q回
 
             boolean ready() //判断是否已l做好读入的准备

             void reset() //重设到最q的一个标?/p>

             long skip(long n) //跌指定个数的字W读?/p>

        2. InputStreamReader是InputStream和Reader之间的桥梁,׃System.in是字节流Q需要用它来包装之后变ؓ字符供lBufferedReader使用?/p>


  3. PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.out")))Q?/p>

  q句话体CJava输入输出pȝ的一个特点,Z辑ֈ某个目的Q需要包装好几层。首先,输出目的地是文gIODemo.outQ所以最内层包装的是 FileWriterQ徏立一个输出文

件流Q接下来Q我们希望这个流是缓冲的Q所以用BufferedWriter来包装它以达到目的,最后,我们需要格式化输出l果Q于是将PrintWriter包在最外层?/p>


Java提供了这样一个功能,标准的输入输出{向,也就是说Q我们可以将某个其他的流设ؓ标准输入或输出流Q看下面q个例子Q?/p>

import java.io.*Q?/p>

public class Redirecting {

       public static void main(String[] args) throws IOException {
              PrintStream console = System.outQ?br />               BufferedInputStream in = new BufferedInputStream( new FileInputStream( "Redirecting.java"))Q?br />               PrintStream out = new PrintStream( new BufferedOutputStream( new FileOutputStream("test.out")))Q?br />               System.setIn(in)Q?br />               System.setOut(out)Q?/p>

              BufferedReader br = new BufferedReader( new InputStreamReader(System.in))Q?br />               String sQ?br />               while((s = br.readLine()) != null)
                     System.out.println(s)Q?br />               out.close()Q?
              System.setOut(console)Q?br />       }
}
 

  在这里java.lang.System的静态方?/p>

            static void setIn(InputStream in) 
            static void setOut(PrintStream out) 

  提供了重新定义标准输入输出流的方法,q样做是很方便的Q比如一个程序的l果有很多,有时候甚臌页昄Q这样不便于观看l果Q这是你可以将标准输出定义ؓ

一个文件流Q程序运行完之后打开相应的文件观看结果,q观了许多?/p>

Gavin.lee 2009-07-23 16:06 发表评论
]]>
几种文gq加Ҏhttp://www.aygfsteel.com/jzone/articles/286765.htmlGavin.leeGavin.leeTue, 14 Jul 2009 15:52:00 GMThttp://www.aygfsteel.com/jzone/articles/286765.htmlpackage com.Gavin.io;

import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.RandomAccessFile;

/**
 * **********************************************
 * 
 * @description 在文件后q加内容
 * 
@author Gavin.lee
 * @date Jul 14, 2009 3:25:58 PM
 * 
@version 1.0 **********************************************
 
*/

public class FileAdd {

    
    
/**
     * public FileOutputStream(String fileName,
                        boolean append)
                 throws FileNotFoundException
     
*/
    
    
public void fileAdd(String absolutePath, String content, boolean isAdd) {
        
if(content == null{
            
return;
        }

        
try {
            FileOutputStream fos 
= new FileOutputStream(new File(absolutePath), isAdd);
            fos.write(content.getBytes());
            fos.close();
        }
 catch (IOException e) {
            e.printStackTrace();
        }

    }

    
    
/**
     * public FileWriter(String fileName,
                  boolean append)
           throws IOException
     
*/

    
public void fileAdd2(String absolutePath, String content, boolean isAdd) {
        
try {   
            FileWriter fw 
= new FileWriter(absolutePath, isAdd);   
            PrintWriter pw 
= new PrintWriter(fw);   
            pw.println(content);   
            pw.close () ;   
            fw.close () ;   
        }
 catch (IOException e) {   
            e.printStackTrace();   
        }
         
    }

    
    
/**
     * public RandomAccessFile(File file,
                        String mode)
                 throws FileNotFoundException 
        含意        ?br />          
        "r"        以只L式打开。调用结果对象的M write Ҏ都将D抛出 IOException?nbsp; 
        "rw"    打开以便d和写入。如果该文g不存在Q则试创徏该文件?nbsp; 
        "rws"    打开以便d和写入,对于 "rw"Q还要求Ҏ件的内容或元数据的每个更新都同步写入到底层存储设备?nbsp; 
        "rwd"   打开以便d和写入,对于 "rw"Q还要求Ҏ件内容的每个更新都同步写入到底层存储讑֤?nbsp;

     
*/

    
public void fileAdd3(String absolutePath, String content, String mode) {           
        
try {   
         RandomAccessFile rf 
= new RandomAccessFile(absolutePath, mode);    
         rf.seek(rf.length());  
//指针移动到文g末尾    
         rf.writeBytes(content);    
         rf.close();
//关闭文g?nbsp;   
        }
catch (IOException e){   
            e.printStackTrace();    
        }

    }

    
public static void main(String[] args) {
        FileAdd fa 
= new FileAdd();
        fa.fileAdd(
"d:\\abc.txt""test content"true);

    }


}



Gavin.lee 2009-07-14 23:52 发表评论
]]>
文g操作大全Q待修订Q?/title><link>http://www.aygfsteel.com/jzone/articles/285573.html</link><dc:creator>Gavin.lee</dc:creator><author>Gavin.lee</author><pubDate>Sun, 05 Jul 2009 10:23:00 GMT</pubDate><guid>http://www.aygfsteel.com/jzone/articles/285573.html</guid><description><![CDATA[     摘要: package com.Gavin.tools; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileRe...  <a href='http://www.aygfsteel.com/jzone/articles/285573.html'>阅读全文</a><img src ="http://www.aygfsteel.com/jzone/aggbug/285573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jzone/" target="_blank">Gavin.lee</a> 2009-07-05 18:23 <a href="http://www.aygfsteel.com/jzone/articles/285573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>清理指定目录下的I文件夹---目日志控制http://www.aygfsteel.com/jzone/articles/284420.htmlGavin.leeGavin.leeSat, 27 Jun 2009 12:32:00 GMThttp://www.aygfsteel.com/jzone/articles/284420.htmlpackage com.Gavin.tools.fileoper;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
 * **********************************************
 * @description 删除指定目录下的I文件夹
 *         在清除项目业务日志文件时会经帔R?br />  * 
@author Gavin.lee
 * @date Jun 27, 2009    12:24:55 PM
 * 
@version 1.0
 ***********************************************
 
*/

public class DeleteNullDirectory {

    
/**
     * 列出某文件夹下的I文件夹l对路径Q储存至list
     * 
@param root
     * 
@return
     
*/

    
public List<File> getAllNullDirectorys(File root) {
        List
<File> list = new ArrayList<File>();
        File[] dirs 
= root.listFiles();
        
if (dirs != null{
            
for (int i = 0; i < dirs.length; i++{
                
if (dirs[i].isDirectory()) {
                    System.out.println(
"name:" + dirs[i].getPath());
                    list.add(dirs[i]);
                }

                getAllNullDirectorys(dirs[i]);
            }

        }

        
return list;
    }


    
//删除操作
    public void removeNullFile(List<File> list) {
        
for (int i = 0; i < list.size(); i++{
            File temp 
= list.get(i);
            
if (temp.isDirectory() && temp.listFiles().length <= 0{
                temp.delete();
            }

        }

    }



    
public static void main(String[] args) {
        DeleteNullDirectory m 
= new DeleteNullDirectory();
        List
<File> list = m.getAllNullDirectorys(new File("e:/test"));
        System.out.println(list.size());
        
for (int i = 0; i < list.size(); i++{
            System.out.println(list.get(i).getPath());
        }

        m.removeNullFile(list);
    }


}



Gavin.lee 2009-06-27 20:32 发表评论
]]>
java 文g分割http://www.aygfsteel.com/jzone/articles/282226.htmlGavin.leeGavin.leeSun, 14 Jun 2009 15:28:00 GMThttp://www.aygfsteel.com/jzone/articles/282226.html今天一哥们在我电脑上下说Q《七界传说?啥玩意我也不知道。我帮忙下的Q下完了吓死我了Q接q?0M,q玩意放手机里根本没法看Q哥们说要分Q完了就开始拖啊,分啊。后来我一惻I不如用程序分Q分的还均匀。呵呵,google一下,找了D늨序,E调试了一把,试OK.

package com.handson.bbs;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

/**
 * **********************************************
 * @description 文g分割器,
 *         一个文件分割成若干文Ӟ多个小文g合ƈC个大文g
 * 
@author Gavin.lee
 * @date Jun 14, 2009    3:05:08 PM
 * 
@version 1.0
 ***********************************************
 
*/

public class FileDivisionUniter {

    
public static final String SUFFIX = ".txt"// 分割后的文g名后~

    
/**
     * 分割文g
     * 
@param fileName 待分割的文g?br />      * @param size 文件的大小Q以字节为单?br />      * @return 分割后小文g的文件名
     * 
@throws Exception 分割q程中可能抛出的异常
     
*/

    
public static String[] divide(String fileName, long size) throws Exception {
        File inFile 
= new File(fileName);
        
if (!inFile.exists() || inFile.isDirectory()) {
            
throw new Exception("指定文g不存?");
        }

        
// 获得被分割文件父文gQ将来被分割成的文件就存放在这个目录下
        File parentFile = inFile.getParentFile();

        
// 取得文g的大?/span>
        long fileLength = inFile.length();
        
if (size <= 0)
            size 
= fileLength / 2;

        
// 取得分割后的文件的数目
        int num = (int) ((fileLength + size - 1/ size);

        
// 存放分割后的文件名
        String[] outFileNames = new String[num];

        FileInputStream in 
= new FileInputStream(inFile);

        
// 读输入文件流的开始和l束下标
        long inEndIndex = 0;
        
int inBeginIndex = 0;

        
// Ҏ要分割的数目分割文g
        for (int outFileIndex = 0; outFileIndex < num; outFileIndex++{
            
// 对于前outFileIndex-1个文Ӟ大小都是size
            File outFile = new File(parentFile, inFile.getName() + outFileIndex    + SUFFIX);
            FileOutputStream out 
= new FileOutputStream(outFile);
            inEndIndex 
+= size;
            inEndIndex 
= (inEndIndex > fileLength) ? fileLength : inEndIndex;
            
// 从输入流中读取字节存储到输出中
            for (; inBeginIndex < inEndIndex; inBeginIndex++)
                out.write(in.read());
            out.close();
            outFileNames[outFileIndex] 
= outFile.getAbsolutePath();
        }

        in.close();
        
return outFileNames;
    }


    
/**
     * 合ƈ文g
     * 
@param fileNames 带合q的文g名,是一个数l?br />      * @param targerFileName 目标文g?br />      * @return 目标文g的全路径
     * 
@throws Exception 合ƈq程中可能抛出的异常
     
*/

    
public static String unite(String[] fileNames, String targerFileName)
            
throws Exception {
        File inFile 
= null;

        File outFile 
= new File(targerFileName);
        FileOutputStream out 
= new FileOutputStream(outFile);

        
for (int i = 0; i < fileNames.length; i++{
            inFile 
= new File(fileNames[i]);
            FileInputStream in 
= new FileInputStream(inFile);
            
int c;
            
while ((c = in.read()) != -1)
                out.write(c);
            in.close();
        }

        out.close();
        
return outFile.getAbsolutePath();
    }


    
public static void main(String[] args) throws Exception {
        String fileName 
= "c:/七界传说.txt";
        
long size = 1024*1000;
        String[] fileNames 
= FileDivisionUniter.divide(fileName, size);
        System.out.println(
"分割文g" + fileName + "l果");
        
for (int i = 0; i < fileNames.length; i++)
            System.out.println(fileNames[i]);

//        String newFileName = "c:/newtest.txt";
//        String arr[] = new String[10];
//        arr[0] = "c:/七界传说.txt0.txt";
//        arr[1] = "c:/七界传说.txt1.txt";
//        arr[2] = "c:/七界传说.txt2.txt";
//        arr[3] = "c:/七界传说.txt3.txt";
//        arr[4] = "c:/七界传说.txt4.txt";
//        arr[5] = "c:/七界传说.txt5.txt";
//        arr[6] = "c:/七界传说.txt6.txt";
//        arr[7] = "c:/七界传说.txt7.txt";
//        arr[8] = "c:/七界传说.txt8.txt";
//        arr[9] = "c:/七界传说.txt9.txt";
//        
//        System.out.println("合ƈl果Q?+ FileDivisionUniter.unite(arr, newFileName));
    }


}



Gavin.lee 2009-06-14 23:28 发表评论
]]>
log4j 记录日志http://www.aygfsteel.com/jzone/articles/277556.htmlGavin.leeGavin.leeSat, 23 May 2009 06:22:00 GMThttp://www.aygfsteel.com/jzone/articles/277556.html讎ͼ 公司里用的是文g写入的方式来记录日志Q理论很单,对业务效果也q不错,但是L觉有Ҏ妥,其实自己很早接触了log4jQ但是都没用好好的用,所以在对log4j的用上不敢多说什么,也就没理p公司提用log4j。下面我l合|上朋友们的说法Q加上自q理解Q整理一下log4j?br />
首先Qlog4j跟dom4j一hApachel织的开源项目,它非常方ѝ你可以在Q意时_L旉间隔内输出日志?/p> log4j主要׃大组件组成:
LoggerQlog4j的日志实例?br /> static Level DEBUG,INFO,WARN,ERROR,FATAL,ALL,OFF.
DEBUG Level指出l粒度信息事件对调试应用E序是非常有帮助的?br /> INFO level表明 消息在粗_度U别上突出强调应用程序的q行q程?br /> WARN level表明会出现潜在错误的情Ş?br /> ERROR level指出虽然发生错误事gQ但仍然不媄响系l的l箋q行?br /> FATAL level指出每个严重的错误事件将会导致应用程序的退出?br /> 另外Q还有两个可用的特别的日志记录?
ALL Level是最低等U的Q用于打开所有日志记录?
OFF Level是最高等U的Q用于关闭所有日志记录?br />
AppenderQ定义log4j输出目的地?br />         org.apache.log4j.ConsoleAppenderQ控制台Q, 
        org.apache.log4j.FileAppenderQ文ӞQ?nbsp;
        org.apache.log4j.DailyRollingFileAppenderQ每天生一个日志文ӞQ?nbsp;
        org.apache.log4j.RollingFileAppenderQ文件大到达指定尺寸的时候生一个新的文ӞQ?nbsp;
        org.apache.log4j.WriterAppenderQ将日志信息以流格式发送到L指定的地方)
ConsoleAppender选项
Threshold=DEBUG:指定日志消息的输出最低层ơ?br /> ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立卌出?br /> Target=System.errQ默认情况下是:System.out,指定输出控制?br /> 1.FileAppender 选项
Threshold=DEBUF:指定日志消息的输出最低层ơ?br /> ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立卌出?br /> File=mylog.txt:指定消息输出到mylog.txt文g?br /> Append=false:默认值是true,卛_消息增加到指定文件中Qfalse指将消息覆盖指定的文件内宏V?br /> 2.RollingFileAppender 选项
Threshold=DEBUG:指定日志消息的输出最低层ơ?br /> ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立卌出?br /> File=mylog.txt:指定消息输出到mylog.txt文g?br /> Append=false:默认值是true,卛_消息增加到指定文件中Qfalse指将消息覆盖指定的文件内宏V?br /> MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小Ӟ会自动滚动Q即原来的内容Udmylog.log.1文g?br /> MaxBackupIndex=2:指定可以产生的滚动文件的最大数?br /> log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
3.DailyRollingFileAppender 选项
Threshold=WARN:指定日志消息的输出最低层ơ?
ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立卌出?
File=mylog.txt:指定消息输出到mylog.txt文g?
Append=false:默认值是true,卛_消息增加到指定文件中Qfalse指将消息覆盖指定的文件内宏V?
DatePattern='.'yyyy-ww:每周滚动一ơ文Ӟx周生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下:
1)'.'yyyy-MM: 每月
2)'.'yyyy-ww: 每周
3)'.'yyyy-MM-dd: 每天
4)'.'yyyy-MM-dd-a: 每天两次
5)'.'yyyy-MM-dd-HH: 每小?
6)'.'yyyy-MM-dd-HH-mm: 每分?

LayoutQ定义log4j输出的格式?nbsp;
        org.apache.log4j.HTMLLayoutQ以HTML表格形式布局Q, 
        org.apache.log4j.PatternLayoutQ可以灵zd指定布局模式Q, 
        org.apache.log4j.SimpleLayoutQ包含日志信息的U别和信息字W串Q, 
        org.apache.log4j.TTCCLayoutQ包含日志生的旉、线E、类别等{信息)
日志信息格式中几个符h代表的含义:
 -X? X信息输出时左寚wQ?br />  %p: 输出日志信息优先U,即DEBUGQINFOQWARNQERRORQFATAL,
 %d: 输出日志旉点的日期或时_默认格式为ISO8601Q也可以在其后指定格式,比如Q?d{yyy MMM dd HH:mm:ss,SSS}Q输出类|2002q?0?8?22Q?0Q?8Q?21
 %r: 输出自应用启动到输出该log信息耗费的毫U数
 %c: 输出日志信息所属的cȝQ通常是所在类的全?br />  %t: 输出产生该日志事件的U程?br />  %l: 输出日志事g的发生位|,相当?C.%M(%F:%L)的组?包括cȝ名、发生的U程Q以及在代码中的行数。D例:Testlog4.main (TestLog4.java:10)
 %x: 输出和当前线E相兌的NDC(嵌套诊断环境),其用到像java servletsq样的多客户多线E的应用中?br />  %%: 输出一?%"字符
 %F: 输出日志消息产生时所在的文g名称
 %L: 输出代码中的行号
 %m: 输出代码中指定的消息,产生的日志具体信?br />  %n: 输出一个回车换行符QWindowsq_?\r\n"QUnixq_?\n"输出日志信息换行
 可以?与模式字W之间加上修饰符来控制其最宽度、最大宽度、和文本的对齐方式。如Q?br />  1)%20cQ指定输出category的名Uͼ最的宽度?0Q如果category的名U小?0的话Q默认的情况下右寚w?br />  2)%-20c:指定输出category的名Uͼ最的宽度?0Q如果category的名U小?0的话Q?-"h定左寚w?br />  3)%.30c:指定输出category的名Uͼ最大的宽度?0Q如果category的名U大?0的话Q就会将左边多出的字W截掉,但小?0的话也不会有I格?br />  4)%20.30c:如果category的名U小?0pI格Qƈ且右寚wQ如果其名称长于30字符Q就从左边较q输出的字符截掉?br />

理论q解这么多了,以后有机会用的时候再去说吧。现在说多了怕错的多了?br /> 下面来看看怎么使用Q?br /> 首先导入log4j需要的包:我用的是 dom4j-1.6.1.jar。这个到ApacheM?br /> 然后d配置文gQlog4j.properties  or  log4j.xmlQ其实这两个q是有点区别的,首先pȝ会去找xmlQ找不到xml配置的时候才去读properties文gQ有
                                    properties的方案以后会被淘汰掉Q这个我׃知道了,我唯一用过的还是propertiesQ不敢多_Q把我以前用log4j的时?br />                                     使用的properties文g先脓下来Q?br />

其实log4j的记录不仅仅是记录到consoleQfileQ还可以到mailQjdbc?br /> 根Logger的配|:讄输出的优先Qlog4j.rootLogger = [ level ] , appenderName, appenderName, …

### global config ###
# log level: DEBUG<INFO<WARN<ERROR<FATAL
log4j.rootLogger=DEBUG,console,file

### appender of console ###
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%-5p  %5r %c] ->Thread:%t -file:%F -line:%L  -content:%m%n

### appender of file ###
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=c:/exam.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%-5p  %5r  %d{yyyy-MM-dd HH\:mm\:ss.SSS}  %c] -> -%F%L -%m%n




然后可以用了Q?/p>

package com.yixun.wap;
import
 org.apache.log4j.Logger;
public class TestLog4j 
{
    
private static Logger logger = Logger.getLogger(TestLog4j.class
); 

    
public static void main(String[] args) 
{
        logger.debug(
"debug "
);   
        logger.info(
"info"
);   
        logger.warn(
"warn"
);
        logger.error(
"error"
); 
        logger.faltal(
"faltal"
);
    }

}
不完全点Q待l?#8230;…

/**********************csdn上down的,没用q,貌似是比较全**************************/

log4j.rootLogger=DEBUG,CONSOLE,DATABASE,FILE
log4j.addivity.org.apache=true

# 应用于控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=GBK
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 用于数据?br /> log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:oracle:thin:@90.0.12.20:1521:ORCL
log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.DATABASE.user=Nation
log4j.appender.DATABASE.password=1
log4j.appender.CONSOLE.Threshold=WARN
log4j.appender.DATABASE.sql=INSERT INTO LOG4J(stamp,thread, infolevel,class,messages) VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m')
# INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
# 写入数据库中的表LOG4J的Message字段中,内容QdQ日期)%c: 日志信息所在地Q类名)%p: 日志信息U别%m: 产生的日志具体信?%n: 输出日志信息换行
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 每天新徏日志
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=C:/log4j/log
log4j.appender.A1.Encoding=GBK
log4j.appender.A1.Threshold=DEBUG
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n

#应用于文?br /> log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=C:/log4j/file.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.Encoding=GBK
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

# 应用于文件回?br /> log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLING_FILE.Threshold=ERROR
log4j.appender.ROLLING_FILE.File=rolling.log
log4j.appender.ROLLING_FILE.Append=true
log4j.appender.CONSOLE_FILE.Encoding=GBK
log4j.appender.ROLLING_FILE.MaxFileSize=10KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=1
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

#自定义Appender
log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender
log4j.appender.im.host = mail.cybercorlin.net
log4j.appender.im.username = username
log4j.appender.im.password = password
log4j.appender.im.recipient = corlin@cybercorlin.net
log4j.appender.im.layout=org.apache.log4j.PatternLayout
log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

#应用于socket
log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender
log4j.appender.SOCKET.RemoteHost=localhost
log4j.appender.SOCKET.Port=5001
log4j.appender.SOCKET.LocationInfo=true
# Set up for Log Facter 5
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n
# Log Factor 5 Appender
log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000

# 发送日志给邮g
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=FATAL
log4j.appender.MAIL.BufferSize=10
log4j.appender.MAIL.From=web@www.wuset.com
log4j.appender.MAIL.SMTPHost=www.wusetu.com
log4j.appender.MAIL.Subject=Log4J Message
log4j.appender.MAIL.To=web@www.wusetu.com
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n



Gavin.lee 2009-05-23 14:22 发表评论
]]>
java 文g操作c?http://www.aygfsteel.com/jzone/articles/270262.htmlGavin.leeGavin.leeTue, 12 May 2009 10:16:00 GMThttp://www.aygfsteel.com/jzone/articles/270262.html阅读全文

Gavin.lee 2009-05-12 18:16 发表评论
]]>
java 日志c?/title><link>http://www.aygfsteel.com/jzone/articles/269934.html</link><dc:creator>Gavin.lee</dc:creator><author>Gavin.lee</author><pubDate>Sun, 10 May 2009 12:43:00 GMT</pubDate><guid>http://www.aygfsteel.com/jzone/articles/269934.html</guid><description><![CDATA[     摘要: q是我在500wan时候,手机wap目中用到的日志c,很简单,只是记录报文。方便检查? (有所更新 version 1.1)   package com.Gavin.tools.util; import java.io.BufferedReader; import java.io.BufferedWriter; import&n...  <a href='http://www.aygfsteel.com/jzone/articles/269934.html'>阅读全文</a><img src ="http://www.aygfsteel.com/jzone/aggbug/269934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jzone/" target="_blank">Gavin.lee</a> 2009-05-10 20:43 <a href="http://www.aygfsteel.com/jzone/articles/269934.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">пѷ</a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank">ʵ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̴</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">dz</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank">ʤ</a>| <a href="http://" target="_blank">ѳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">괨</a>| <a href="http://" target="_blank">Ԫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʷ</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">½</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̺</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ӱʡ</a>| <a href="http://" target="_blank">Ϻӿ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ӷ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">̩</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>