'로깅'에 해당되는 글 3건
- 2011.11.14 이클립스에서 표준 출력을 파일로 저장하기
- 2010.03.05 로깅 레벨 이해하기
- 2009.02.28 log4sql 1
- 이클립스에서 표준 출력을 파일로 저장하기
- 日常茶飯事
- 2011. 11. 14. 01:00
Eclipse Java EE IDE for Web Developers를 사용하면 로컬 환경에서 WAS를 구동시키고, 테스트하기 쉽다.
표준출력이 Console 뷰로 출력되는데 WAS를 재시작하면 Console 내용이 지워져서 많이 불편했다.
이 표준출력을 파일로 저장하는 방법이 있다.
파일 위치를 지정할 수 있고 Append 옵션이 있다.
표준출력이 Console 뷰로 출력되는데 WAS를 재시작하면 Console 내용이 지워져서 많이 불편했다.
이 표준출력을 파일로 저장하는 방법이 있다.
파일 위치를 지정할 수 있고 Append 옵션이 있다.
- 로깅 레벨 이해하기
- 日常茶飯事
- 2010. 3. 5. 21:33
- log4j를 사용하였지만 대부분의 로깅 프레임워크에 통용된다.
- 설정된 레벨이하가 로깅된다.
- 설정된 레벨이하가 로깅된다.
ALL
0 [main] TRACE test.SimpleLogTest - trace
0 [main] DEBUG test.SimpleLogTest - debug
0 [main] INFO test.SimpleLogTest - info
0 [main] WARN test.SimpleLogTest - warn
0 [main] ERROR test.SimpleLogTest - error
0 [main] FATAL test.SimpleLogTest - fatal
TRACE
0 [main] TRACE test.SimpleLogTest - trace
0 [main] DEBUG test.SimpleLogTest - debug
0 [main] INFO test.SimpleLogTest - info
0 [main] WARN test.SimpleLogTest - warn
0 [main] ERROR test.SimpleLogTest - error
0 [main] FATAL test.SimpleLogTest - fatal
DEBUG
16 [main] DEBUG test.SimpleLogTest - debug
16 [main] INFO test.SimpleLogTest - info
16 [main] WARN test.SimpleLogTest - warn
16 [main] ERROR test.SimpleLogTest - error
16 [main] FATAL test.SimpleLogTest - fatal
INFO
16 [main] INFO test.SimpleLogTest - info
16 [main] WARN test.SimpleLogTest - warn
16 [main] ERROR test.SimpleLogTest - error
16 [main] FATAL test.SimpleLogTest - fatal
WARN
16 [main] WARN test.SimpleLogTest - warn
172 [main] ERROR test.SimpleLogTest - error
172 [main] FATAL test.SimpleLogTest - fatal
ERROR
172 [main] ERROR test.SimpleLogTest - error
172 [main] FATAL test.SimpleLogTest - fatal
FATAL
172 [main] FATAL test.SimpleLogTest - fatal
OFF
0 [main] TRACE test.SimpleLogTest - trace
0 [main] DEBUG test.SimpleLogTest - debug
0 [main] INFO test.SimpleLogTest - info
0 [main] WARN test.SimpleLogTest - warn
0 [main] ERROR test.SimpleLogTest - error
0 [main] FATAL test.SimpleLogTest - fatal
TRACE
0 [main] TRACE test.SimpleLogTest - trace
0 [main] DEBUG test.SimpleLogTest - debug
0 [main] INFO test.SimpleLogTest - info
0 [main] WARN test.SimpleLogTest - warn
0 [main] ERROR test.SimpleLogTest - error
0 [main] FATAL test.SimpleLogTest - fatal
DEBUG
16 [main] DEBUG test.SimpleLogTest - debug
16 [main] INFO test.SimpleLogTest - info
16 [main] WARN test.SimpleLogTest - warn
16 [main] ERROR test.SimpleLogTest - error
16 [main] FATAL test.SimpleLogTest - fatal
INFO
16 [main] INFO test.SimpleLogTest - info
16 [main] WARN test.SimpleLogTest - warn
16 [main] ERROR test.SimpleLogTest - error
16 [main] FATAL test.SimpleLogTest - fatal
WARN
16 [main] WARN test.SimpleLogTest - warn
172 [main] ERROR test.SimpleLogTest - error
172 [main] FATAL test.SimpleLogTest - fatal
ERROR
172 [main] ERROR test.SimpleLogTest - error
172 [main] FATAL test.SimpleLogTest - fatal
FATAL
172 [main] FATAL test.SimpleLogTest - fatal
OFF
http://log4sql.sourceforge.net
로그를 출력한 정확한 위치가 나오지는 않는다. 설정을 변경해서 로그를 출력하는 위치를 지정할 수 있다.
그러나 간단한 설정으로 쿼리문을 로깅할 수 있어 편하다. (2009-08-28) 1
P6Spy 도 있음.
- Add log4sql.jar
- Change driver class name
- Select Fix를 False로 두고 Select Position을 지정한다.
기본 설정(Select Position이 9)
Select Fix를 False로 둔다.
Select Position을 7로 둔다.
로그를 출력한 정확한 위치가 나오지는 않는다. 설정을 변경해서 로그를 출력하는 위치를 지정할 수 있다.
그러나 간단한 설정으로 쿼리문을 로깅할 수 있어 편하다. (2009-08-28) 1
P6Spy 도 있음.
- Add log4sql.jar
- Change driver class name
oracle.jdbc.drirver.OracleDriver | core.log.jdbc.driver.OracleDriver |
com.mysql.jdbc.Driver - or - org.gjt.mm.mysql.Driver |
core.log.jdbc.driver.MysqlDriver |
org.hsqldb.jdbcDriver |
core.log.jdbc.driver.HSQLDriver |
org.apache.derby.jdbc.ClientDriver |
core.log.jdbc.driver.DerbyDriver |
net.sourceforge.jtds.jdbc.Driver |
core.log.jdbc.driver.JTdsDriver |
sun.jdbc.odbc.JdbcOdbcDriver |
core.log.jdbc.driver.JdbcOdbcDriver |
com.microsoft.jdbc.sqlserver.SQLServerDriver |
core.log.jdbc.driver.MssqlDriver |
com.microsoft.sqlserver.jdbc.SQLServerDriver |
core.log.jdbc.driver.Mssql2005Driver |
- Select Fix를 False로 두고 Select Position을 지정한다.
기본 설정(Select Position이 9)
[2009-08-28 12:18:51] [DEBUG]『xxx.fw.common.ControlServlet:perform(84)』 Elapsed Time [0:00:00.001] //정확한 위치가 나오지 않는다.
SELECT Top 5 seq, title, ...
FROM TB_NOTICE
WHERE use_yn = 'Y'
...
SELECT Top 5 seq, title, ...
FROM TB_NOTICE
WHERE use_yn = 'Y'
...
Select Fix를 False로 둔다.
[2009-08-28 12:26:50] [DEBUG]『『xxx.fw.common.ControlServlet:perform(84)』 Elapsed Time [0:00:00.000]
SELECT Top 5 seq, title, ...
FROM TB_NOTICE
WHERE use_yn = 'Y'
...
############## BELOW MESSAGE IS TRACE. NO ERROR! ##############
[0] at core.log.logger.SL.getMessageThrowableForThread(SL.java:196)
[1] at core.log.aop.handler.DaoInfo.log(DaoInfo.java:132)
[2] at core.log.aop.handler.DaoInfo.doAround(DaoInfo.java:101)
[3] at core.log.aop.reflection.profiler.AroundProfiler.invoke(AroundProfiler.java:19)
[4] at $Proxy0.executeQuery(Unknown Source)
[5] at com.caucho.sql.UserPreparedStatement.executeQuery(UserPreparedStatement.java:108)
[6] at com.caucho.sql.UserPreparedStatement.executeQuery(UserPreparedStatement.java:108)
[7] at xxx.aa.model.XxxDAO.getMainNoticeList(XxxDAO.java:135)
[8] at xxx.aa.command.XxxCommand.execute(XxxCommand.java:43)
[9] at xxx.fw.common.ControlServlet.perform(ControlServlet.java:84)
[10] at xxx.fw.common.ControlServlet.doGet(ControlServlet.java:60)
[11] at javax.servlet.http.HttpServlet.service(HttpServlet.java:115)
[12] at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
[13] at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
[14] at xxx.fw.common.EncodingFilter.doFilter(EncodingFilter.java:44)
[15] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
[16] at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:170)
[17] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
[18] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
[19] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274)
[20] at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)
[21] at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
[22] at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
[23] at java.lang.Thread.run(Thread.java:595)
SELECT Top 5 seq, title, ...
FROM TB_NOTICE
WHERE use_yn = 'Y'
...
############## BELOW MESSAGE IS TRACE. NO ERROR! ##############
[0] at core.log.logger.SL.getMessageThrowableForThread(SL.java:196)
[1] at core.log.aop.handler.DaoInfo.log(DaoInfo.java:132)
[2] at core.log.aop.handler.DaoInfo.doAround(DaoInfo.java:101)
[3] at core.log.aop.reflection.profiler.AroundProfiler.invoke(AroundProfiler.java:19)
[4] at $Proxy0.executeQuery(Unknown Source)
[5] at com.caucho.sql.UserPreparedStatement.executeQuery(UserPreparedStatement.java:108)
[6] at com.caucho.sql.UserPreparedStatement.executeQuery(UserPreparedStatement.java:108)
[7] at xxx.aa.model.XxxDAO.getMainNoticeList(XxxDAO.java:135)
[8] at xxx.aa.command.XxxCommand.execute(XxxCommand.java:43)
[9] at xxx.fw.common.ControlServlet.perform(ControlServlet.java:84)
[10] at xxx.fw.common.ControlServlet.doGet(ControlServlet.java:60)
[11] at javax.servlet.http.HttpServlet.service(HttpServlet.java:115)
[12] at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
[13] at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
[14] at xxx.fw.common.EncodingFilter.doFilter(EncodingFilter.java:44)
[15] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
[16] at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:170)
[17] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
[18] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
[19] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274)
[20] at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)
[21] at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
[22] at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
[23] at java.lang.Thread.run(Thread.java:595)
Select Position을 7로 둔다.
[2009-08-28 12:36:25] [DEBUG]『xxx.aa.model.XxxDAO:getMainNoticeList(135)』 Elapsed Time [0:00:00.000] //쿼리문의 위치가 정확히 나오게 된다.
SELECT Top 5 seq, title, ...
FROM TB_NOTICE
WHERE use_yn = 'Y'
...
SELECT Top 5 seq, title, ...
FROM TB_NOTICE
WHERE use_yn = 'Y'
...
- log4sql 웹사이트에 설정방법이 나오는데 이해를 하지 못했다. 행자님의 댓글을 보고 다시 해보았다. [본문으로]
Recent comment