2015-06-04 21 views
5

Tôi đang làm việc trên một dự án có mã cũ đã sử dụng Log4J trong quá khứ và hiện đang sử dụng SLF4J. Hầu hết các câu lệnh ghi log4J kiểu cũ vẫn còn, và tôi chuyển đổi các câu lệnh log từ từ sang kiểu SLF4J mới khi tôi bắt gặp chúng.IntelliJ: Có một hành động ý định để chuyển đổi các cuộc gọi Log4J kiểu cũ sang các cuộc gọi SLF4J kiểu mới?

Tôi vừa mới nhận ra rằng cách nhấn Alt + Nhập khi trong các báo cáo log kiểu cũ mang lại cho tôi các tùy chọn sau (tiếc là tôi không thể tải lên một ảnh chụp màn hình):

  • Sao chép String nối văn bản để clipboard
  • ngôn ngữ Tiêm hoặc tham chiếu
  • Thay thế '+' với 'String.format()'
  • Thay thế '+' với 'StringBuilder.append()'
  • Thay thế '+' với 'java.test.MessageFormat.format()'

Tùy chọn Replace '+' with 'String.format()' rất gần với những gì tôi cần, mặc dù tôi không cần các bit String.format(.

Có điều gì đó sẽ cho tôi một hành động có ý định không: Replace Log4J style log statement with SLF4J style log statement?

Như một ví dụ về phong cách khai thác gỗ cũ (ví dụ Log4J), ý tôi là:

LOGGER.debug("User " + user.getUserId() + " has performed a search with the criteria " + dto); 

Và bởi phong cách mới tôi muốn nói:

LOGGER.debug("User {} has performed a search with the criteria {}", user.getUserId(), dto); 
+1

AFAIK không có –

+1

Intellij có cấu trúc thay thế có thể giúp bạn (nhưng tôi chưa sử dụng đủ để giúp bạn hiểu rõ hơn ở đây): https://www.jetbrains.com/idea/documentation/ssr. html –

+0

@WimDeblauwe Nó chắc chắn sẽ giúp bạn! Cảm ơn bạn. – vegemite4me

Trả lời

7

Bạn đã thử Java | Sự cố đăng nhập | Chuỗi liên tục không liên tục làm đối số để ghi nhật ký cuộc gọi kiểm tra? Nó có một quickfix để tự động chuyển đổi một chuỗi nối với một thông điệp tường trình tham số.

+0

Đề xuất tuyệt vời. Nó bây giờ được bật một nó hoạt động rất tốt. – vegemite4me

+0

Đề xuất này để sử dụng _Inspection_ gần hơn với _Intention Action_ hơn _Structural Replace_. Cảm ơn bạn! – vegemite4me

3

Nhờ bình luận Wim Deblauwe về SSR Tôi có phát hiện Chỉnh sửa | Tìm | Kết cấu Thay và sử dụng những điều sau đây để sửa chữa các trường hợp đơn giản, nơi hai đối số được sử dụng trong một tuyên bố đăng nhập:

Tìm kiếm mẫu:

LOGGER.debug("$str1$" + $arg1$ + "$str2$" + $arg2$) 

thay thế mẫu:

LOGGER.debug("$str1${}$str2${}", $arg1$, $arg2$) 

tôi nghi ngờ Tôi đang sử dụng tính năng Tìm kiếm và Thay thế Kết cấu với khả năng tối đa của nó và sẽ phải thực hiện một vài lần quét để có được tất cả các câu lệnh ghi nhật ký, nhưng đây là tiến bộ lớn. Cảm ơn bạn Wim.

Các vấn đề liên quan