Batch Class 별도로 log4j 파일 설정방법
프로그래밍/Java2017. 12. 21. 14:38
log4j.rootLogger=info, console
log4j.logger.BatchCheck=info, BatchCheck
log4j.logger.DB_BackUp=info, DB_BackUp
# Direct log messages to stdout
log4j.appender.console=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %5p (%C{2} - %M:%L) - %m%n
# Direct log message to log file
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd
log4j.appender.logfile.File=D:/work/magna/admin.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %5p (%C{2} - %M:%L) - %m%n
log4j.appender.logfile.Append=true
# BatchCheck.java
log4j.appender.BatchCheck=org.apache.log4j.DailyRollingFileAppender
log4j.appender.BatchCheck.File=D:/work/magna/BatchCheck.log
log4j.appender.BatchCheck.DatePattern='.'yyyy-MM-dd
log4j.appender.BatchCheck.Threshold=info
log4j.appender.BatchCheck.layout=org.apache.log4j.PatternLayout
log4j.appender.BatchCheck.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %5p (%C{2} - %M:%L) - %m%n
log4j.appender.BatchCheck.Append=true
# IfTransferRequest.java
log4j.appender.DB_BackUp=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DB_BackUp.File=D:/work/magna/DB_BackUp.log
log4j.appender.DB_BackUp.DatePattern='.'yyyy-MM-dd
log4j.appender.DB_BackUp.Threshold=info
log4j.appender.DB_BackUp.layout=org.apache.log4j.PatternLayout
log4j.appender.DB_BackUp.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %5p (%C{2} - %M:%L) - %m%n
log4j.appender.DB_BackUp.Append=true
class 파일은 다음과같이 적용한다.
import org.apache.log4j.Logger;
public class DB_BackUp {
private final static Logger logger = Logger.getLogger("DB_BackUp");
}
'프로그래밍 > Java' 카테고리의 다른 글
| Map 데이터 출력방법 (0) | 2017.11.14 |
|---|
Map 데이터 출력방법
프로그래밍/Java2017. 11. 14. 14:17
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapUtil {
public static void main(String[] args) {
Map map = new HashMap();
map.put(1, "AAA");
map.put(2, "BBB");
map.put(3, "CCC");
System.out.println("\n ##### 방법1 #####");
for(int key : map.keySet()){
System.out.println("key:"+key+" value:"+map.get(key));
}
System.out.println("\n ##### 방법2 #####");
for(Map.Entry data : map.entrySet()){
System.out.println("key:"+data.getKey()+" value:"+data.getValue());
}
System.out.println("\n ##### 방법3 #####");
Iterator iterater1 = map.keySet().iterator();
while(iterater1.hasNext()){
int key = iterater1.next();
System.out.println("key:"+key+" value:"+map.get(key));
}
System.out.println("\n ##### 방법4 #####");
Set keySet = map.keySet();
Iterator iterator2 = keySet.iterator();
while(iterator2.hasNext()){
int key = iterator2.next();
System.out.println("key:"+key+" value:"+map.get(key));
}
}
}
'프로그래밍 > Java' 카테고리의 다른 글
| Batch Class 별도로 log4j 파일 설정방법 (0) | 2017.12.21 |
|---|
[JavaScript] 클로저란
프로그래밍/JavaScript2017. 11. 1. 16:14
내부함수
자바스크립트는 함수 안에서 또 다른 함수를 선언할 수 있다.
함수 outter의 내부에는 함수 inner가 정의 되어 있다
클로저(closure)는 내부함수와 밀접한 관계를 가지고 있는 주제다.
function outter(){
function inner(){
var name= 'closerTest';
console.log(name);
}
inner();
}
outter(); // closerTest가 출력된다.
function outter(){
var name= 'closerTest';
function inner(){
console.log(name);
}
inner();
}
outter(); // closerTest 가 출력된다.
내부함수는 외부함수의 지역변수에 접근 할 수 있는데 외부함수의 실행이 끝나서 외부함수가
소멸된 이후에도 내부함수가 외부함수의 변수에 접근 할 수 있다. 이러한 메커니즘을 클로저라고 한다.
클로저란 내부함수가 외부함수의 지역변수에 접근 할 수 있고,
외부함수는 외부함수의 지역변수를 사용하는 내부함수가 소멸될 때까지 소멸되지 않는 특성을 의미한다.
function outter(){
var name = 'closerTest';
return function(){
alert(name);
}
}
inner = outter();
inner(); // closerTest 가 출력된다.
