파일 읽기 :

FileReader fileReader = new FileReader (fileName);
   BufferedReader bufferedReader = new BufferedReader(fileReader);
   String str = "";
   while ((str=bufferedReader.readLine()) != null ){
    System.out.println(str); 
   }

fileReader.close();

 

 

 

파일쓰기 :

fileWriter = new FileWriter(new File(fileName));

fileWriter.write(str.toString());

fileWriter.close();

'JAVA' 카테고리의 다른 글

IP찾기  (0) 2013.02.26
Java - 자주사용하는 Collection객체들의 특징  (0) 2013.02.08
[JAVA] 프로세스 리스트 출력 - 확인해보기  (0) 2013.02.08
[JAVA] String의 날짜를 date로 변환  (0) 2013.01.25
[JAVA] log4j  (0) 2009.11.12

하나를 만들때마다

코드 한줄을 적을 때 마다 오류 사항에 대해 의문점을 갖고 테스트를 하자.

'끄적끄적' 카테고리의 다른 글

한번 오류난 모듈은 불안하다  (0) 2013.01.30

프로그램을 하다가 오류나 디버깅을 하기 위해 System.out.println으로 출력을 많이한다.

하지만 log4j라는 것을 이용하여 일반 디버깅 보다는 적절하게

console, file, smtp, db 등 여러곳으로 로그를 남길수 있는게 log4j이다.

프로퍼티 파일을 이용하여 사용할 수도 있고 .

이렇게 어플리 케이션에서 사용할 수 도 있다.


fatal(), error(), warn(), info(), debug(), trace()
fatal : 아주 심각한 에러가 발생한 상태를 나타낸다. 시스템적으로 심각한 문제가 발생해서 어플리케이션 작동이 불가능할 경우가 해당하는데, 일반적으로는 어플리케이션에서는 사용할 일이 없다.
error : 요청을 처리하는중 문제가 발생한 상태를 나타낸다.
warn  : 요청을 처리하는중 문제가 발생했지만, 불완전하게나마 처리가 가능한 상태를 나타낸다.
info : 어플리케이션이 작동할때 필요한 기본적인 정보를 나타낸다.
debug : 디버깅 즉, 문제 해결을 하기 위한 상태 정보를 나타낸다.
trace : log4j1.2.12에서 신규 추가된 레벨으로서. 디버그 레벨이 너무 광범위한것을 해결하기위해서 좀더 상세한 상태를 나타낸다.


######################################################################
#%p  debug, info, warn, error, fatal 등의 priority 가 출력된다. 
#%m  로그내용이 출력됩니다
#%d  로깅 이벤트가 발생한 시간을 기록합니다.
#  포맷은 %d{HH:mm:ss, SSS}, %d{yyyy MMM dd HH:mm:ss, SSS}같은 형태로 사용하며 SimpleDateFormat에 따른 포맷팅을 하면 된다
#%t  로그이벤트가 발생된 쓰레드의 이름을 출력합니다. 
#%%  % 표시를 출력하기 위해 사용한다. 
#%n  플랫폼 종속적인 개행문자가 출력된다. \r\n 또는 \n 일것이다. 
#%c  카테고리를 표시합니다
#  예) 카테고리가 a.b.c 처럼 되어있다면 %c{2}는 b.c가 출력됩니다.
#%C  클래스명을 표시합니다.
#  예)클래스구조가 org.apache.xyz.SomeClass 처럼 되어있다면 %C{2}는 xyz.SomeClass 가 출력됩니다
#%F  로깅이 발생한 프로그램 파일명을 나타냅니다.
#%l  로깅이 발생한 caller의 정보를 나타냅니다
#%L  로깅이 발생한 caller의 라인수를 나타냅니다
#%M  로깅이 발생한 method 이름을 나타냅니다.
#%r  어플리케이션 시작 이후 부터 로깅이 발생한 시점의 시간(milliseconds)
#%x  로깅이 발생한 thread와 관련된 NDC(nested diagnostic context)를 출력합니다.
#%X  로깅이 발생한 thread와 관련된 MDC(mapped diagnostic context)를 출력합니다.

#######################################################################


  

import java.io.*;
import org.apache.log4j.*;
import org.apache.log4j.net.SMTPAppender;
import org.apache.log4j.jdbc.JDBCAppender;

public class Test2 {
 
 
 public static Logger logger = Logger.getRootLogger();
 
 String logPattern = "[%d][%-5p](%F:%L) - %m%n";
 DailyRollingFileAppender fileAppd = null;
 ConsoleAppender conAppd = null;
 JDBCAppender dbAppd = null;
 
 public void fileAppend(){
  
  try{
   
   fileAppd = new DailyRollingFileAppender(new PatternLayout(logPattern), "./log/logfile.log", "yyyy-MM-dd");
   
  }catch (IOException e){
   System.out.println("file 로그설정에 문제");
   System.exit(-1);
  } 
  //fileAppd.setThreshold(Level.FATAL); // 이것보다 레벨이 낮으면 안됨
  
  logger.addAppender(fileAppd);
 }
 
 public void consoleAppend(){


  try{
   conAppd = new ConsoleAppender(new PatternLayout(logPattern));
   
  }catch (Exception e){
   
   System.out.println("consol 로그설정에 문제");
   System.exit(-1);
  }
  //conAppd.setThreshold(Level.TRACE); // 이것보다 레벨이 낮으면 안됨
  logger.addAppender(conAppd);
 }
 
 public void smtpAppend(){
 
  SMTPAppender appender = null;
  try{
   appender = new SMTPAppender();
   appender.setBufferSize(1);
   appender.setTo("받는사람");
   appender.setFrom("보내는사람");
   appender.setSMTPHost("메일호스트");
   appender.setSubject("제목");
   
   appender.setLayout(new PatternLayout(logPattern));
   appender.activateOptions();
   
  }catch (Exception e){
   System.out.println("smtp 로그설정에 문제");
   System.exit(-1);
  }
  logger.addAppender(appender);
 } 
 
 public void dbAppend(){
  try{
   dbAppd = new JDBCAppender();
   dbAppd.setDriver("com.microsoft.jdbc.sqlserver.SQLServerDriver");
   dbAppd.setURL("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=디비이름");
   dbAppd.setUser("사용자이름");
   dbAppd.setPassword("비번");
   dbAppd.setLayout(new PatternLayout(logPattern));
   dbAppd.setBufferSize(1);
   dbAppd.setSql("insert into APP_LOG(LOGDATE, LOGLEVEL, CLASSNAME, LINE, MESSAGE) values('%d', '%p', '%F', '%L', '%m')");
   
  }
  catch(Exception e){
   System.out.println("db 로그설정에 문제");
   System.exit(-1);
  } 
  logger.addAppender(dbAppd);
 }
 
 public void setLogFatal(String message){
  logger.fatal(message);
 }
 public void setLogDebug(String message){
  logger.debug(message);
 }
 public void setLogWarn(String message){
  logger.warn(message);
 }
 public void setLogInfo(String message){
  logger.info(message);
 }
 public void setLogTrace(String message){
  logger.trace(message);
 }
 public void setLogError(String message){
  logger.error(message);
 }
 
 
}

 

 


+ Recent posts