berangerthomas commited on
Commit
5eb9b10
·
1 Parent(s): 49363c2

Add logtype detection based on name

Browse files
Files changed (2) hide show
  1. config/log_definitions.py +1 -1
  2. sections/upload.py +20 -3
config/log_definitions.py CHANGED
@@ -1,5 +1,5 @@
1
  log_definitions = {
2
- "apache_access": {
3
  "sep": " ",
4
  "fields": [
5
  {"name": "datetime", "pos": slice(0, 5), "type": "datetime"},
 
1
  log_definitions = {
2
+ "apache": {
3
  "sep": " ",
4
  "fields": [
5
  {"name": "datetime", "pos": slice(0, 5), "type": "datetime"},
sections/upload.py CHANGED
@@ -23,14 +23,31 @@ uploaded_file = st.file_uploader("Choose a log file")
23
 
24
  # Get available log types from log_definitions
25
  log_types = list(log_definitions.keys())
 
26
  # Set default log type if not already in session state
 
27
  if "log_type" not in st.session_state:
28
- st.session_state.log_type = log_types[0] # Default to first log type
29
-
30
- st.session_state.log_type = st.selectbox(
 
 
 
 
 
 
 
 
 
 
31
  "Select log type", log_types, index=log_types.index(st.session_state.log_type)
32
  )
33
 
 
 
 
 
 
34
  # Store the parsed dataframe in the session state
35
  if "parsed_df" not in st.session_state:
36
  st.session_state.parsed_df = None
 
23
 
24
  # Get available log types from log_definitions
25
  log_types = list(log_definitions.keys())
26
+
27
  # Set default log type if not already in session state
28
+ # Initialize log_type in session state if not present
29
  if "log_type" not in st.session_state:
30
+ st.session_state.log_type = log_types[0] # Start with first log type as default
31
+ st.session_state.user_selected = False # Track if user manually selected a log type
32
+
33
+ # Check if a new file was uploaded and update suggested log type
34
+ if uploaded_file is not None and not st.session_state.get("user_selected", False):
35
+ filename = uploaded_file.name.lower()
36
+ for log_type in log_types:
37
+ if log_type.lower() in filename:
38
+ st.session_state.log_type = log_type
39
+ break
40
+
41
+ # Display the selectbox
42
+ selected_log_type = st.selectbox(
43
  "Select log type", log_types, index=log_types.index(st.session_state.log_type)
44
  )
45
 
46
+ # Update session state and mark as user-selected when changed
47
+ if selected_log_type != st.session_state.log_type:
48
+ st.session_state.log_type = selected_log_type
49
+ st.session_state.user_selected = True
50
+
51
  # Store the parsed dataframe in the session state
52
  if "parsed_df" not in st.session_state:
53
  st.session_state.parsed_df = None