View Javadoc
1   /*
2    * Licensed under the GPL License. You may not use this file except in compliance with the License.
3    * You may obtain a copy of the License at
4    *
5    *   https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
6    *
7    * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
8    * WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
9    * PURPOSE.
10   */
11  package psiprobe.controllers.logs;
12  
13  import jakarta.servlet.http.HttpServletRequest;
14  import jakarta.servlet.http.HttpServletResponse;
15  
16  import java.util.Arrays;
17  
18  import org.springframework.beans.factory.annotation.Value;
19  import org.springframework.stereotype.Controller;
20  import org.springframework.web.bind.ServletRequestUtils;
21  import org.springframework.web.bind.annotation.RequestMapping;
22  import org.springframework.web.servlet.ModelAndView;
23  
24  import psiprobe.tools.logging.LogDestination;
25  import psiprobe.tools.logging.jdk.Jdk14HandlerAccessor;
26  import psiprobe.tools.logging.log4j.Log4JAppenderAccessor;
27  import psiprobe.tools.logging.log4j2.Log4J2AppenderAccessor;
28  import psiprobe.tools.logging.logback.LogbackAppenderAccessor;
29  import psiprobe.tools.logging.logback13.Logback13AppenderAccessor;
30  import psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackAppenderAccessor;
31  import psiprobe.tools.logging.slf4jlogback13.TomcatSlf4jLogback13AppenderAccessor;
32  
33  /**
34   * The Class ChangeLogLevelController.
35   */
36  @Controller
37  public class ChangeLogLevelController extends AbstractLogHandlerController {
38  
39    @RequestMapping(path = "/adm/changeloglevel.ajax")
40    @Override
41    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
42        throws Exception {
43      return super.handleRequest(request, response);
44    }
45  
46    @Override
47    protected ModelAndView handleLogFile(HttpServletRequest request, HttpServletResponse response,
48        LogDestination logDest) throws Exception {
49  
50      String level = ServletRequestUtils.getRequiredStringParameter(request, "level");
51      if (Arrays.asList(logDest.getValidLevels()).contains(level)) {
52        if (logDest instanceof Log4JAppenderAccessor accessor) {
53          accessor.getLoggerAccessor().setLevel(level);
54        } else if (logDest instanceof Log4J2AppenderAccessor accessor) {
55          accessor.getLoggerAccessor().setLevel(level);
56        } else if (logDest instanceof Jdk14HandlerAccessor accessor) {
57          accessor.getLoggerAccessor().setLevel(level);
58        } else if (logDest instanceof LogbackAppenderAccessor accessor) {
59          accessor.getLoggerAccessor().setLevel(level);
60        } else if (logDest instanceof Logback13AppenderAccessor accessor) {
61          accessor.getLoggerAccessor().setLevel(level);
62        } else if (logDest instanceof TomcatSlf4jLogbackAppenderAccessor accessor) {
63          accessor.getLoggerAccessor().setLevel(level);
64        } else if (logDest instanceof TomcatSlf4jLogback13AppenderAccessor accessor) {
65          accessor.getLoggerAccessor().setLevel(level);
66        }
67      }
68      return null;
69    }
70  
71    @Value("")
72    @Override
73    public void setViewName(String viewName) {
74      super.setViewName(viewName);
75    }
76  
77  }