금일 배운 학습 내용




  • GIT Server 구축
  • DB분리 작업
  • Log 설정




  • GIT Server 구축


Eclipse -> Help -> Eclipse Marketplace에서 Git 검색 후 EGit - Git Team Provider를 Install 시킨다.



http://www.springsource.org -> Code Samples -> Spring Framework Samples ->

 

Git Read-Only -> URI 가져오기




Eclipse -> Git Repositories -> Clone a Git repository





Next -> Next -> Finish




SVN Repositories에서 하는 것처럼 별다른 것 없이 URI에 Git Source 주소를 적어 등록시킨다.









등록이 되었으면 spring-petclinic -> Working Directory -> Import Projects






Import 시키면 Package Explorer에 등록된 것을 확인 할 수 있다.





  • DB분리 작업



Services.xml에 보관해둔 DB정보를 분리 작업을 한다.



Step1. data-access.properties


Import해둔 spring-petclinic -> src -> main -> resources -> spring ->

 

data-access.properties 파일을 작업 할 프로젝트 resources에 가져와서


DB정보를 data-access.properties 파일에다 저장해준다.


jdbc.driverClassName=oracle.jdbc.driver.OracleDriver

jdbc.url=jdbc:oracle:thin:@localhost:1521:xe

jdbc.username=scott

jdbc.password=tiger



Step2. Services.xml


  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

  <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>

  <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>

  <property name="username" value="scott"/>

  <property name="password" value="tiger"/>

  </bean>


위 DB정보를 EL(Expression Language)로 적어준다.


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

<property name="driverClassName" value="${jdbc.driverClassName}" />

<property name="url" value="${jdbc.url}" />

<property name="username" value="${jdbc.username}" />

<property name="password" value="${jdbc.password}" />

</bean>



위 DB정보를 data-access.properties 파일로 생성해 저장한다.


context:property-placeholder location="classpath:data-access.properties" />


 



Spring framework 2.5 미만에서는 위 코드를 사용하지 못하고, 아래 코드를 사용하게 된다.


<bean

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations" value="classpath:data-access.properties" />

</bean>







  • Log 설정



Pom.xml -> Dependencies 에서 log4j 검색 후 1.2.14 버전을 추가한다.



  •  log4j 설정
1. web.xml에 context-param과 Listener 설정을 안해줘도 classpath의 루트 경로에
log4j.properties 파일을 두면 자동으로 loggin이 활성화 된다.

2. 또는, WEB-INF/.../log4j.properties 파일을 둔 경우, 아래와 같이 web.xml 파일에
log4jConfigLocation 이라는 이름으로 파라메터 정보를 설정하고,
log4jConfigListener를 사용하여 로딩하는 방법도 있다.

  • log4j 설정파일 위치 설정 (2번방법)
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>

  • web.xml에서 Listener 설정 (2번방법)
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

  • log4j.properties 생성 및 설정

WEB-INF 폴더안에 log4j.properties (File) 생성하고 작성한다.


# DEBUG < INFO < WARN < ERROR < FATAL

log4j.rootCategory=DEBUG, stdout, dailyfile


# setting stdout logger

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

#log4j.appender.stdout.ImmediateFlush=true

#log4j.appender.stdout.Target=System.err

log4j.appender.stdout.layout.ConversionPattern=[%5p] [%t] (%F) - %m%n


# setting dailyfile logger

log4j.appender.dailyfile=org.apache.log4j.DailyRollingFileAppender

log4j.appender.dailyfile.layout=org.apache.log4j.PatternLayout

log4j.appender.dailyfile.layout.ConversionPattern=[%5p] [%t] (%F) - %m%n

log4j.appender.dailyfile.DatePattern='.'yyyy-MM-dd

log4j.appender.dailyfile.threshold=DEBUG


#시스템 properties에 집어넣을 경로 ${webapp.root} 설정

#1. context-param web.xml에 집어 넣기.

#-> context-param 정의

# <context-param>

# <param-name>webAppRootKey</param-name>

# <param-value>webapp.root</param-value>

# </context-param>


#2. log4jConfigListener 또는 WebAppRootListener에 추가하기.



log4j.appender.dailyfile.File=${webapp.root}/WEB-INF/log/web03.log


#log4j.logger.org.springframework=DEBUG

#log4j.logger.org.apache=DEBUG

#log4j.logger.org.mybatis=DEBUG


#log4j.logger.java.sql=DEBUG

#log4j.logger.java.sql.Connection=DEBUG

#log4j.logger.java.sql.Statement=DEBUG

#log4j.logger.java.sql.PreparedStatement=DEBUG

#log4j.logger.java.sql.ResultSet=DEBUG


log4j.logger.bit.java39.dao=TRACE




[%p]

 로그 기록 범위 

 [%t]

 스레드

 (%F)

 현 파일명

 %m

 메시지를 출력

 %n

 다음라인으로 이동





  • 시스템 properties에 집어넣을 경로 설정하기
    <!-- 다음 파라메터는 log4jConfigListener에 의해 시스템 프로퍼티로 등록된다.
    -> log4jConfigListener는 webapp.root 이름으로 웹 애플리케이션 루트 경로를 저장한다.
     -->

1. context-param web.xml에 집어넣기
- context-param 정의

<context-param>
    <param-name>webAppRootKey</param-name> <!-- 시스템 프로퍼티에 넣으려면 반드시 이 이름으로 설정해야 한다. -->
    <param-value>webapp.root</param-value>     <!-- 값은 마음대로. log4j.properties에서 사용할 이름이다. -->
</context-param>


2. log4jConfigListener 또는 WebAppRootListener 추가하기



  • Log4j 설정

기본 디폴트는 DEBUG이다.

  • logger 지정
    • 로그 기록의 범위 지정
      • DEBUG < INFO < WARN < ERROR < FATAL
        • 지정한 것보다 같거나 작은 것 모두 출력

예시) DEBUG로 지정하면 그 아래 모든 것이 출력된다.


  • 로그 출력 방법 (이름은 마음대로 설정해도 상관없다.)
예시) log4j.rootCategory=DEBUG, stdout, dailyfile
예시) 각 출력 방법을 지정
- log4j.appender.방법이름=방법지정

  • 출력할 대상 지정
    • log4j.logger


  • 선언 방법
private Logger logger = Logger.getLogger(Logger.class);

static 사용하지 말고 private로 사용한다.

  • 사용방법

logger.debug("오호라...debug...");

logger.info("오호라...info...");

logger.warn("오호라...warn...");

logger.fatal("오호라...fatal...");



  • File로 추출할때 방법 (log4j.properties)

log4j.appender.dailyfile.File=${webapp.root}/web03/WEB-INF/log/web03.log


- 시스템루트를 지정하지 않고 동적으로 받아와 해당 루트에 로그파일을 생성하기 위함.





  • 실제 경로 확인하는 방법

Properties props = System.getProperties();
for(Object key : props.keySet()){
System.out.println(key + " , " + props.getProperty((String)key));
}




- a.k.a. aking -


'학습정리 > by aking' 카테고리의 다른 글

사이트정리  (0) 2013.07.21
안드로이드 NFC  (0) 2013.07.19
Java Script  (0) 2013.07.09
HTML & CSS  (0) 2013.06.25
by 알 수 없는 사용자 2013. 6. 24. 22:18
| 1 |