# Copyright (c) 2010 Flowerfire, Inc. All Rights Reserved. jira = { plugin_version = "2.0" # 2008-08-11 - 1.0 - GMF - initial implementation # 2013-09-10 - 2.0 - GMF - Added generic parsing of all lines (not just HTTP lines); added message field. info.1.manufacturer = "Atlassian" info.1.device = "JIRA" info.1.version.1 = "3" # 3.11 # The name of the log format log.format.format_label = "JIRA Log Format" log.miscellaneous.log_data_type = "generic" log.miscellaneous.log_format_type = "application" log.format.autodetect_lines = 100 # e.g. 2008-07-09 03:13:21,484 ABC-Processor3 INFO [name.of.Class] user1 http://somewhere.com/jira/secure/Something.jspa 94639-7293 2766 # The log is in this format if any of the first ten lines match this regular expression # log.format.autodetect_regular_expression = "^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9 ][0-9]:[0-9][0-9]:[0-9][0-9],[0-9][0-9][0-9] [^ ]+ [A-Z]+ [[][^]]+[]] [^ ]+ [^ ]+ [-+0-9]+ [0-9]+" log.format.autodetect_regular_expression = "^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9 ][0-9]:[0-9][0-9]:[0-9][0-9],[0-9][0-9][0-9] [^ ]+ [A-Z]+ +[[][^]]+[]]" # This regular expression is used to parse the log fields out of the log entry log.parsing_filters.parse = ` if (matches_regular_expression(current_log_line(), "^([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]) ([0-9 ][0-9]:[0-9][0-9]:[0-9][0-9]),[0-9][0-9][0-9] ([^ ]+) ([A-Z]+) +([^ ]+) (.*)$")) then ( date = $1; time = $2; thread = $3; priority = $4; class = $5; #2008-07-09 21:47:04,750 TP-Processor1 INFO [jira.web.filters.AccessLogFilter] bob https://somewhere.com/jira/secure/IssueNavigator.jspa 12451+48036 750 message = $6; if (matches_regular_expression(message, '^([^ ]+) ([^ ]+) ([-+0-9]+) ([0-9]+)')) then ( user = $1; url = $2; memory = $3; time_taken = $4; ); ); # if matches ` # Log fields log.fields = { date = "" time = "" thread = "" priority = "" class = "" message = "" user = "" url.type = "page" memory = "" time_taken = "" } # log.fields # Database fields database.fields = { date_time = "" day_of_week = "" hour_of_day = "" thread = "" priority = "" class = "" message = "" user = "" url = "" file_type = "" } # database.fields database.numerical_fields = { events = { default = true requires_log_field = false entries_field = true } # events time_taken = { default = false requires_log_field = true type = "int" integer_bits = 64 display_format_type = duration_milliseconds } # time_taken } # database.numerical_fields log.filters = { omit_message = { label = "Omit message field to keep database size down" #LM comment = "" value = "message = '[omitted]'" } # omit_message mark_entry = { label = '$lang_admin.log_filters.mark_entry_label' comment = '$lang_admin.log_filters.mark_entry_comment' value = 'events = 1;' } # mark_entry } # log.filters create_profile_wizard_options = { # How the reports should be grouped in the report menu report_groups = { date_time_group = "" thread = true priority = true class = true user = true url = true file_type = true } # report_groups } # create_profile_wizard_options } # jira