@@ -160,6 +160,59 @@ public Response<PageModel<XxlJobLog>> pageList(HttpServletRequest request,
160160 return Response .ofSuccess (pageModel );
161161 }
162162
163+ @ RequestMapping ("/logDetailPage" )
164+ public String logDetailPage (HttpServletRequest request , @ RequestParam ("id" ) long id , Model model ){
165+
166+ // base check
167+ XxlJobLog jobLog = xxlJobLogMapper .load (id );
168+ if (jobLog == null ) {
169+ throw new RuntimeException (I18nUtil .getString ("joblog_logid_unvalid" ));
170+ }
171+
172+ // valid permission
173+ JobGroupPermissionUtil .validJobGroupPermission (request , jobLog .getJobGroup ());
174+
175+ // data
176+ model .addAttribute ("triggerCode" , jobLog .getTriggerCode ());
177+ model .addAttribute ("handleCode" , jobLog .getHandleCode ());
178+ model .addAttribute ("logId" , jobLog .getId ());
179+ return "joblog/joblog.detail" ;
180+ }
181+
182+ @ RequestMapping ("/logDetailCat" )
183+ @ ResponseBody
184+ public Response <LogResult > logDetailCat (@ RequestParam ("logId" ) long logId , @ RequestParam ("fromLineNum" ) int fromLineNum ){
185+ try {
186+ // valid
187+ XxlJobLog jobLog = xxlJobLogMapper .load (logId ); // todo, need to improve performance
188+ if (jobLog == null ) {
189+ return Response .ofFail (I18nUtil .getString ("joblog_logid_unvalid" ));
190+ }
191+
192+ // log cat
193+ ExecutorBiz executorBiz = XxlJobAdminBootstrap .getExecutorBiz (jobLog .getExecutorAddress ());
194+ Response <LogResult > logResult = executorBiz .log (new LogRequest (jobLog .getTriggerTime ().getTime (), logId , fromLineNum ));
195+
196+ // is end
197+ if (logResult .getData ()!=null && logResult .getData ().getFromLineNum () > logResult .getData ().getToLineNum ()) {
198+ if (jobLog .getHandleCode () > 0 ) {
199+ logResult .getData ().setEnd (true );
200+ }
201+ }
202+
203+ // fix xss
204+ if (logResult .getData ()!=null && StringTool .isNotBlank (logResult .getData ().getLogContent ())) {
205+ String newLogContent = filter (logResult .getData ().getLogContent ());
206+ logResult .getData ().setLogContent (newLogContent );
207+ }
208+
209+ return logResult ;
210+ } catch (Exception e ) {
211+ logger .error (e .getMessage (), e );
212+ return Response .ofFail (e .getMessage ());
213+ }
214+ }
215+
163216 /**
164217 * filter xss tag
165218 */
@@ -191,7 +244,7 @@ private String filter(String originData){
191244
192245 @ RequestMapping ("/logKill" )
193246 @ ResponseBody
194- public Response <String > logKill (HttpServletRequest request , @ RequestParam ("id" ) int id ){
247+ public Response <String > logKill (HttpServletRequest request , @ RequestParam ("id" ) long id ){
195248 // base check
196249 XxlJobLog log = xxlJobLogMapper .load (id );
197250 XxlJobInfo jobInfo = xxlJobInfoMapper .loadById (log .getJobId ());
0 commit comments