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=trueclass 파일은 다음과같이 적용한다.
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) { Mapmap = 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 가 출력된다.