В веб-приложении на базе Spring, куда направляется вывод моей консоли / журнала?
Я пишу простое веб-приложение на основе Spring и внедряю его в Websphere Liberty 8.5.5.9; Я преодолел свои проблемы с развертыванием, и приложение, кажется, запускается (согласно Liberty console.log
). Тем не менее, я не вижу консоль или журнал вывода. Основной класс моего приложения, который содержит операторы print в методе main:
@Configuration
public class UserSettingApplication extends SpringBootServletInitializer implements WebApplicationInitializer {
ServletContext servletContext;
private static final LoggerUtils logger = new LoggerUtils( UserSettingApplication.class );
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
builder.sources(UserSettingApplication.class);
return builder;
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.addListener(RequestContextListener.class);
this.servletContext=servletContext;
super.onStartup(servletContext);
}
public static void main(String[] args) throws Exception {
System.out.println( "Entering UserSettingApplication.main" );
SpringApplicationBuilder applicationBuilder = new UserSettingApplication().configure(new SpringApplicationBuilder());
applicationBuilder.run(args);
System.out.println( "Entering UserSettingApplication.main" );
}
@Override
protected WebApplicationContext run(SpringApplication application) {
WebApplicationContext webApplicationContext = super.run(application);
Environment env = webApplicationContext.getEnvironment();
String sessionName = env.getProperty("server.session.cookie.name", "xplore-session-id");
servletContext.getSessionCookieConfig().setName(sessionName);
return webApplicationContext;
}
@Bean
protected RequestContextListener requestContextListener() {
return new RequestContextListener();
}
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
return args -> {
logger.info("Let's inspect the beans provided by Spring Boot:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
logger.info(beanName);
}
};
}
}
Должен ли я видеть операторы print в методе main в WASLiberty? console.log
?
2 ответа
Разве я не вижу операторы print в основном методе в файле console.log WASLiberty?
Вы не увидите распечаток с main
метод, как это не выполняется в свободе. main
Этот метод используется для автономных приложений, запускаемых из командной строки, а не с сервера приложений. Поместите ваши сообщения в configure
метод, как показано ниже, и вы увидите это.
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
System.out.println("##############@@@@@@@@@@@@##############Starting app");
System.out.println() НЕ будет записывать в такие файлы, как console.log.
Вместо этого он запишет в консоль, такую как окно командной строки или консоль затмения.
Вам нужно использовать регистраторы, такие как log4j или Java.util.logging для записи в файлы.
Вы можете найти больше информации здесь, в чем разница между java-logger-and-system-out-println