В веб-приложении на базе 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

Другие вопросы по тегам