Tôi muốn có một tệp logback.xml để sản xuất và một tệp khác với các tham số khác nhau trên môi trường dàn dựng của tôi. Mã của tôi có thể tự động biết trong thời gian chạy nếu nó được sản xuất hoặc thời gian chạy. Có cách nào để thiết lập tệp cấu hình logback khi chạy không?Làm cách nào để đặt tệp cấu hình đăng nhập khi chạy?
Trả lời
Phương pháp 1: Nạp từ các tập tin khác nhau
Bạn có thể giữ hai tập tin cấu hình khác nhau và tải các tập tin cho các môi trường cụ thể với JoranConfiguratior#doConfigure
lúc khởi động ứng dụng.
Xem http://logback.qos.ch/manual/configuration.html#joranDirectly. Ví dụ mã cũng lấy từ đó với những thay đổi đối với trường hợp của bạn:
public class MyApp3 {
final static String STAGING_CONFIGURATION = "/path/to/statging.xml";
final static String PRODUCTION_CONFIGURATION = "/path/to/production.xml";
final static Logger logger = LoggerFactory.getLogger(MyApp3.class);
public static void main(String[] args) {
// assume SLF4J is bound to logback in the current environment
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
// determine environmental specific configuration path
final String path = isProdcution() ? PRODUCTION_CONFIGURATION : STAGING_CONFIGURATION;
try {
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(context);
// Call context.reset() to clear any previous configuration, e.g. default
// configuration. For multi-step configuration, omit calling context.reset().
context.reset();
configurator.doConfigure(path);
} catch (JoranException je) {
// StatusPrinter will handle this
}
StatusPrinter.printInCaseOfErrorsOrWarnings(context);
logger.info("Entering application.");
Foo foo = new Foo();
foo.doIt();
logger.info("Exiting application.");
}
}
Tất nhiên, mã của bạn để nhận được tên tập tin chính xác có thể được điều chỉnh phù hợp nhu cầu của bạn. Hơn nữa, có một số phương thức quá tải doConfigure
(http://logback.qos.ch/apidocs/ch/qos/logback/core/joran/GenericConfigurator.html#doConfigure%28java.io.File%29) sẽ lấy InputStreams, Tệp và URL tốt hơn.
Phương pháp 2: Sử dụng điều kiện trong một tập tin
Nếu bạn có thể xác định môi trường bằng cách sử dụng xây dựng logbag trong hoặc chủ tài sản của hệ thống, bạn có thể sử dụng các cấu hình có điều kiện:
http://logback.qos.ch/manual/configuration.html#conditional
<!-- if-then form -->
<if condition="condition for your production">
<then>
...
</then>
<else>
...
</else>
</if>
- 1. Khi nào tệp cấu hình đăng nhập được tải?
- 2. Làm cách nào để định cấu hình Spring và SLF4J để tôi có thể đăng nhập?
- 3. Làm cách nào để định cấu hình mục tiêu NLog thành chỉ đăng nhập ngoại lệ?
- 4. Ghi đè cấu hình đăng nhập
- 5. FileNamePattern trong RollingFileAppender - cấu hình đăng nhập
- 6. Làm thế nào để đặt mức độ đăng nhập trong khi chạy kiểm tra hàng hóa?
- 7. Cấu hình đăng nhập Hybris hMC
- 8. Làm cách nào để xuất/nhập cấu hình Jenkins?
- 9. Định cấu hình Đăng nhập trên Windows
- 10. Làm cách nào để định cấu hình đăng nhập log4j cho một cái bình?
- 11. Làm cách nào để xuất và nhập cấu hình Chạy/Gỡ lỗi trong PHPStorm?
- 12. Làm cách nào để xóa một mục nhập trong cấu hình chung với cấu hình git?
- 13. Làm cách nào để nhập một cấu hình iTerm2?
- 14. Cách định cấu hình ghi nhật ký khi chạy JAR?
- 15. Cấu hình nginx để không đăng nhập ELB healthcheck thứ
- 16. Cách chỉ định thông tin đăng nhập Windows trong tệp cấu hình máy khách WCF
- 17. Cài đặt Inno - làm cách nào để chương trình của tôi chạy khi người dùng đăng nhập vào Windows?
- 18. Làm cách nào để cấu hình JPA EntityListener qua tệp cấu hình Spring XML?
- 19. Làm cách nào để thay đổi cài đặt urlbase trong tệp cấu hình Bugzilla theo cách thủ công?
- 20. Cách định cấu hình đăng nhập cho gói?
- 21. Cách tải cấu hình của người dùng mới đăng nhập trước khi chuyển hướng
- 22. Làm cách nào để rút gọn tệp cấu hình .emacs?
- 23. Làm cách nào để đặt "chỉ chạy nếu đã đăng nhập" và "chạy dưới dạng" với TaskScheduler trong C#?
- 24. Làm cách nào để đăng nhập và xác thực với Postgresql sau khi cài đặt mới?
- 25. Nơi đặt tệp cấu hình bằng Python?
- 26. Làm cách nào để kích hoạt cấu hình Spring Boot khi chạy từ IntelliJ?
- 27. Cách cấu hình Eclipse để luôn chạy cấu hình chạy lần cuối, không phải tệp hiện tại?
- 28. Làm cách nào để nhận tất cả các cài đặt cấu hình từ tệp Azure Config?
- 29. Logger slf4j không sử dụng mức cấu hình đăng nhập
- 30. Đăng nhập cấu hình trong Play Framework khi bắt đầu tự động kiểm tra
Bạn có sử dụng Spring không? – John
không! Plain java cũ. – poiuytrez