NetBeans에서 Java Swing을 사용하여 업계 용 ERP를 개발 중입니다. log4J을 사용하여 발생한 예외를 기록하고 싶습니다! 및 AOP. 나는 많은 검색을했으나 대부분의 예제가 웹 프레임 작업 (예 : Spring) 용이므로 Swing 기반 응용 프로그램과 AOP의 통합을 얻지 못했습니다. 미리 감사드립니다.Java Swing 응용 프로그램에서 예외 로깅을위한 Log4j 및 AOP 포함
답변
문제점을 보지 못했습니다. 자바 클래스 만 사용하고 있습니다. 다른 Java 클래스에 AspectJ을 적용 할 수 있으면 Swing 클래스에도 적용 할 수 있습니다. 한번 시도 해보면, AspectJ로 AOP는 기본 개념을 이해하면 정말 재미있을 것이다. 구체적인 질문이 있으시면 가능한 한 도와 드리겠습니다.
는 업데이트 : 좋아, 난 그냥 약간의 여유 시간이 있었고, 당신을 위해 빠른 데모를 해킹 일부 sample code을 사용했다.
최소 스윙 예를 들어 두 개의들이 RuntimeException, 메인 창을 만드는 동안 하나 팝업 대화 상자에서 "확인"을 클릭 다른 던지는 :
import java.awt.event.*;
import javax.swing.*;
public final class MinimalSwingApplication {
public static void main(String... aArgs) {
MinimalSwingApplication app = new MinimalSwingApplication();
app.buildAndDisplayGui();
}
private void buildAndDisplayGui() {
JFrame frame = new JFrame("Main window");
buildContent(frame);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
private void buildContent(JFrame aFrame) {
JPanel panel = new JPanel();
panel.add(new JLabel("Hello"));
JButton ok = new JButton("Show pop-up dialog");
ok.addActionListener(new ShowDialog(aFrame));
panel.add(ok);
aFrame.getContentPane().add(panel);
throw new RuntimeException("Oops!");
}
private static final class ShowDialog implements ActionListener {
private JFrame fFrame;
ShowDialog(JFrame aFrame) {
fFrame = aFrame;
}
public void actionPerformed(ActionEvent aEvent) {
JOptionPane.showMessageDialog(fFrame, "I am the a pop-up dialog");
throw new RuntimeException("Something unexpected happened here");
}
}
}
JDK를 사용하여 (예외를 기록 샘플 측면을 로깅,하지만 당신은 쉽게) Log4J를 전환 할 수 있습니다 :
import java.util.logging.*;
public aspect SwingExceptionLogger {
static Logger logger = Logger.getLogger(SwingExceptionLogger.class.getName());
Object around() : execution(* MinimalSwingApplication..*(..)) {
try {
return proceed();
} catch (Exception e) {
logger.log(Level.WARNING, "Swing exception: " + e.getMessage());
return null;
}
}
}
샘플 출력을 팝업 두 번 대화/응용 프로그램과 개방을 시작 닫는 :
10.11.2012 09:42:28 MinimalSwingApplication buildContent_aroundBody5$advice
WARNUNG: Swing exception: Oops!
10.11.2012 09:42:33 MinimalSwingApplication$ShowDialog actionPerformed_aroundBody1$advice
WARNUNG: Swing exception: Something unexpected happened here
10.11.2012 09:42:37 MinimalSwingApplication$ShowDialog actionPerformed_aroundBody1$advice
WARNUNG: Swing exception: Something unexpected happened here
원하는 경우 AWT/Swing 스레드의 로그 만 기록하도록 포인트 컷을 수정할 수 있습니다. 예외를 삼키는 대신 예외를 다시 던질 수도 있습니다. 실험이나 물어보십시오.
AOP pointcuts 및 스윙 기반 응용 프로그램 기능을 사용하여 몇 가지 예를주세요. –
AOP pointcuts 및 스윙 기반 응용 프로그램과 다른 기능을 사용하여 몇 가지 예제를 제공하십시오. @kriegaex –
구체적인 문제 및 일부 샘플 코드를 사용하십시오. . 나는 여기에 아무도 당신을 위해 완전한 예제 또는 튜토리얼을 만들고 싶어하지 않는다고 생각합니다. AspectJ를 사용해 본 경험이 있습니까? 범위를 좁혀주세요. – kriegaex
- 1. Java Swing 응용 프로그램에서 배경 이미지 표시
- 2. Java Swing 응용 프로그램에서 URL 시작
- 3. log4j 예외 처리
- 4. Java EE 애플리케이션에서 감사 로깅을위한 솔루션
- 5. 로깅을위한 C# 클래스 라이브러리의 처리되지 않은 예외
- 6. Java 응용 프로그램에서 모든 예외 가져 오기
- 7. 로깅을위한 예외 예외 세부 사항을 얻는 방법?
- 8. 독립형 Java 응용 프로그램에서 동일한 log4j 로거 사용
- 9. Java 응용 프로그램에서 Windows 전환
- 10. SOAP을 통한 Java Swing 응용 프로그램에서 .NET Web Service 호출
- 11. .NET 응용 프로그램에서 Java Swing 구성 요소를 호스팅하는 방법
- 12. Java Swing 응용 프로그램에서 Windows 탐색기로 드래그 앤 드롭
- 13. netbeans java swing 응용 프로그램에서 모듈러 코드를 작성하는 방법은 무엇입니까?
- 14. Java Swing 응용 프로그램에서 Google 시각화 API를 사용할 수 있습니까?
- 15. Java/Swing 응용 프로그램에서 Eclipse의 "표시 탭"을 복제 하시겠습니까?
- 16. Swing 응용 프로그램에서 Java Swing과 JavaFX를 혼합하는 방법은 무엇입니까?
- 17. Java Swing 응용 프로그램의 로그인 인증
- 18. log4j 널 포인터 예외
- 19. log4j 로깅을위한 JUnit 기본 구성과 이클립스를 사용하여 변경하는 방법은 무엇입니까?
- 20. log4j spring jdbc 예외
- 21. Java, swing, JFrame 및 JPanel
- 22. Java Swing EDT 및 동시성
- 23. 실행중인 응용 프로그램에서 Swing JLabel 텍스트 변경
- 24. Swing 응용 프로그램에서 커서를 숨기는 방법은 무엇입니까?
- 25. Swing 응용 프로그램에서 런타임에 글꼴 크기 변경
- 26. MediaTracker를 사용하여 Swing 응용 프로그램에서 이미지 캐쉬하기
- 27. SLF4J는 데이터베이스 로깅을위한 다중 스레드 응용 프로그램에서 사용하기에 좋은가요?
- 28. Grails AOP (aspectj 및/또는 Groovy AOP 포함)는 주석을 사용하는 것이 바람직합니다.
- 29. Swing/Java3D 애플리케이션의 상태 기반 실행 취소 : AOP 솔루션?
- 30. 데스크톱 응용 프로그램에 로깅을위한 연습
로거를 주사하고 싶습니까? –
@kriegaex는 이미 언급했듯이 귀하의 질문이 너무 광범위합니다 (투표 마감). 구체적인 코딩 문제로 분해하십시오. – kleopatra
나는이 사람이 늙었지만 여전히 답이없는 사람으로 열거되어 있음을 안다. 받아 들일 것이고 내 대답을 상향 조정하는 것이 적절하다고 생각하십니까? 감사. – kriegaex