@@ -25,6 +25,7 @@ public class DatabaseService {
2525
2626 private final PmProcessListRepository processListRepo ;
2727 private final PpomSessionRepository sessionRepo ;
28+ private final SyslogLevelCounter syslogLevelCounter ;
2829
2930 @ ConfigProperty (name = "syslog.base.path" , defaultValue = "/" )
3031 String syslogBasePath ;
@@ -47,9 +48,12 @@ public class DatabaseService {
4748 @ ConfigProperty (name = "syslog.smb.password" , defaultValue = "" )
4849 String smbPassword ;
4950
50- public DatabaseService (PmProcessListRepository processListRepo , PpomSessionRepository sessionRepo ) {
51+ public DatabaseService (PmProcessListRepository processListRepo ,
52+ PpomSessionRepository sessionRepo ,
53+ SyslogLevelCounter syslogLevelCounter ) {
5154 this .processListRepo = processListRepo ;
5255 this .sessionRepo = sessionRepo ;
56+ this .syslogLevelCounter = syslogLevelCounter ;
5357 }
5458
5559 @ Transactional
@@ -81,8 +85,22 @@ private LoggedUserData loggedJoinedData(Object[] row) {
8185 String syslogPath = (String ) row [4 ];
8286
8387 String loginDateIso = loginDate != null ? DateTimeFormatter .ISO_INSTANT .format (loginDate .toInstant ()) : null ;
88+ SyslogLevelStats levels = resolveSyslogLevels (syslogPath );
8489
85- return new LoggedUserData (processId , userName , nodeName , loginDateIso , syslogPath );
90+ return new LoggedUserData (processId , userName , nodeName , loginDateIso , syslogPath , levels );
91+ }
92+
93+ private SyslogLevelStats resolveSyslogLevels (String syslogPath ) {
94+ if (syslogPath == null || syslogPath .isBlank ()) {
95+ return SyslogLevelStats .empty ();
96+ }
97+
98+ try (InputStream stream = downloadSyslogFile (syslogPath )) {
99+ return syslogLevelCounter .countLevels (stream );
100+ } catch (Exception e ) {
101+ System .out .println ("[DatabaseService] Unable to analyze syslog '" + syslogPath + "': " + e .getMessage ());
102+ return SyslogLevelStats .empty ();
103+ }
86104 }
87105
88106 public InputStream getFileStream (String pmSyslogPath , long start , long length ) throws Exception {
0 commit comments