lang_options = { command_line = { action = { label = "動作" short_description = "The command-line action to perform" long_description = "This specifies the command-line action to perform with the specified profile. The HTML interface takes care of setting this option for you as necessary, but you will need to set it manually when using the command line interface. Possible modes are:
build_database (or bd): This builds or rebuilds the database from the log data, erasing any data already in the database.
update_database (or ud): This adds the log data to the database, while also leaving any existing data in the database.
remove_database_data (or rdd): This expires all data from the database which is in the filter set specified by {=docs_option_link('f')=}.
rebuild_cross_reference_tables (or rcrt): This rebuilds the cross-reference tables of the database from the main table (without processing any log data). It is much faster than rebuilding the database. It can be useful if you have modified the cross-reference table settings and want to update the cross-reference tables to reflect the new settings, but don't want to rebuild the database.
rebuild_database_indices (or rdi): This rebuilds the indices of the main table.
rebuild_database_hierarchies (or rdh): This rebuilds the hierarchy tables of the database.
merge_database (or md): This merges the contents of a database (specified with {=docs_option_link('mdd')=}) into the current database. After it completes, the current profile's database will contain all the information it contained prior to the merge, plus the information in the added database.
generate_all_report_files (or garf): This generates HTML statistics pages for all report, and the associated images, into the $lang_stats.directory specified by {=docs_option_link('ghtd')=}. The files and images are linked properly, so the HTML can be browsed directly from the resulting $(lang_stats.directory). This allows statistics to be browsed \"off-line,\" without having to run $PRODUCT_NAME to generate each page.
generate_report_files (or grf): This generates HTML statistics pages for a particular report (specified by {=docs_option_link('rn')=}), and the associated images, into the $lang_stats.directory specified by {=docs_option_link('ghtd')=}. The files and images are linked properly, so the HTML can be browsed directly from the resulting $(lang_stats.directory). This allows one report to be browsed \"off-line,\" without having to run $PRODUCT_NAME to generate each page.
send_report_by_email (or srbe): This sends a statistical report using HTML email. The report is sent to {=docs_option_link('rca')=} with return address {=docs_option_link('rna')=} using {=docs_option_link('ss')=}. The report to send is specified by {=docs_option_link('rn')=}.
export_csv_table (or evt): This exports a view table as CSV text. The report to export is specified by {=docs_option_link('rn')=}, and is written to the standard output stream, so this is useful only in command-line mode.
print_values (or pv): This displays (to the command line console) the numerical field values for a particular filter set.
print_subitems (or ps): This displays (to the command line console) the subitem hierarchy for the database field specified with -fn option
print_items (or pi): This displays (to the command line console) all item values for the database field specified with -fn option
list_profiles (or lp) This displays (to the command line console) a list of the internal names of all profiles. These names can be used for command-line options that call for profile names.
list_reports (or lr) This displays (to the command line console) a list of the report in the specified profile (specified with -p profilename). These names can be used for command-line options that call for report names (like -rn).
list_log_fields (or llf) This displays (to the command line console) a list of the internal names of the log fields in the specified profile (specified with -p profilename). These names can be used for log filters.
list_database_fields (or ldf) This displays (to the command line console) a list of the internal names of the database fields in the specified profile (specified with -p profilename). These names can be used for report filters.
print_database_statistics (or pds) This displays statistics on the database for a profile (specified with -p profilename). It is useful for tuning and debugging memory and disk usage.
convert_70_database (or c70d) This updates an existing MySQL database created by $PRODUCT_NAME 7.0 to use the new layout used by version 7.1. This is required if you want to continue to use your existing MySQL database after upgrading to $PRODUCT_NAME 7.1 or later. It applies only to MySQL databases; no conversion is required for internal databases.
update_to_version (or utv) This updates the $PRODUCT_NAME installation to a newer version (version number is specified with {=docs_option_link('utv')=}. This is new and highly experimental. For maximum safety, use the existing downloads page to download new versions instead of using this feature. If you do use this, back up your LogAnalysisInfo folder first!
" } # action build_database = { label = "建立資料庫" } # build_database display_page = { label = "顯示頁面" short_description = "The interface page to display" long_description = "This tells $PRODUCT_NAME which page to display in its HTML interface. This is generally used internally to deliver pages of the user interface to the browser." } # display_page date_filter = { label = "日期設定" short_description = "The date filter to use when generating a report" long_description = "
This specifies the date filters to use when generating a report. It is similar to the {=docs_option_link('f')=} option, but with a few differences:
It is intended only for date filtering (use {=docs_option_link('f')=} for other types of filtering).
It supports a wider range of syntax options (see below).
It is displayed attractively in the \"Date Filter\" section of the report (filter specified with {=docs_option_link('f')=} will appear below that, and will appear as literal filter expressions).
This option is most often used to create easy date or date range filters when generating reports from the command line.
The format of the value is either a date in the format yyyy, mmm/yyyy, d/mmm/yyyy (leading 0 is option on day), or a date range D1-D2 where D1 and D2 use the same format. Examples:
2004 2001-2004 Jan/2004 Jan/2004-April/2005 10/Jan/2004 10/Jan/2004-15/May/2005" } # date_filter date_breakdown = { label = "資料分析" short_description = "Zooms to the date which is specified in \"$lang_options.command_line.date_filter.label\"" long_description = "This option is used in combination with the \"$lang_options.command_line.date_filter.label\". If the option is specified then the generated report will be zoomed to the date which is specified in \"$lang_options.command_line.date_filter.label\"." } # date_breakdown filters = { label = "統計過濾" short_description = "The filters to use when generating a report" long_description = "
This specifies the filters to use when generating a report; i.e. it filters out all data not matching this expression, so only part of the data is reported. This command is useful only from the command line--if you are running $PRODUCT_NAME from a web browser, this is handled for you.
The value of this option is an expression using the {=docs_chapter_link('salang')=} syntax. However only a subset of the language is available for this option. Specifically, the option can use:
within: e.g. '(page within \"/directory\")' or '(date_time within \"__/Jan/2004 __:__:__\")'
<, >, <=, >=: for date/time field only, e.g. '(date_time < \"01/Jan/2004 00:00:00\")'
and: between any two expressions to perform the boolean \"and\" of those expressions
or: between any two expressions to perform the boolean \"or\" of those expressions
not: before any expression to perform the boolean \"not\" of that expressions
matches: wildcard matching, e.g. '(page matches \"/index.*\")'
matches_regexp: regular expression matching, e.g. '(page matches_regexp \"^/index\\\\..*\\$\")'
Date/time values are always in the format dd/mmm/yyyy hh:mm:ss; underscores are used as wildcards, to match any value in that position. For instance, \"15/Feb/2003 __:__:__\" refers to a single day, and \"__/Feb/2003 __:__:__\" refers to a month, a \"__/___/2003 __:__:__\" referrs to a year.
To show only events from February, 2005:
To show only events within the page directory /picts/:
To show only events from February, 2004, and within the page directory /picts/:
To show only events from February 4, 2004 through February 10, 2004:
To show only events with source port ending with 00:
To show only events with source port ending with 00, or with destination port not ending in 00:
To show only events with server_response 404, and on pages whose names contain three consecutive digits:
This specifies the version number to update to, using the web update feature. This feature is still experimental. When used in conjuction with -a ui, this provides a command-line method of updating an existing $PRODUCT_NAME installation to a newer version.
" } # update_to_version generate_html_to_directory = { label = "將 HTML 報表產生在 $lang_stats.directory" short_description = "Generate HTML report files into a $lang_stats.directory" long_description = "This option is used when {=docs_option_link('a')=} is generate_report_files or generate_all_report_files (in command line usage). $PRODUCT_NAME generates statistics pages into this $(lang_stats.directory). This option determines what $lang_stats.directory the files are generated in." } # generate_html_to_directory generate_pdf_friendly_files = { label = "產生 PDF 相容檔案" short_description = "Generate HTML report files in a PDF friendly format" long_description = "This option is used when {=docs_option_link('a')=} is generate_report_files or generate_all_report_files (in command line usage). $PRODUCT_NAME generates statistics pages in a PDF friendly format by omitting the frameset, adding a table of contents page and by modifying specific style parameters." } # generate_pdf_friendly_files generate_report = { label = "產生報表" short_description = "Generate a report" long_description = "This generates a report, given the report ID. This is used internally to handle the generation of HTML reports." } # generate_report generate_all_report_files = { label = "產生所有報表檔案" } # generate_all_report_files generate_report_files = { label = "產生報表檔案" } # generate_report_files master_process_id = { label = "主要的處理代碼" short_description = "Process ID of the master web servering thread (used internally)" long_description = "This is the process ID (pid) of the main web server process. This is used internally to recognize when the main process exits, so the subordinate process knows to exit too." } # master_process_id merge_database_directory = { label = "合併資料庫路徑" short_description = "Directory of database to merge into this one" long_description = "This specifies the database directory for a database to merge into the current database. This is used together with \"-a md\" to add the contents of a second database to the current database. The second database must have the exact same structure as the first-- the easiest way to ensure that is to use the same profile file to build both." } # merge_database_directory password = { label = "查看分析密碼" short_description = "The password required to view the statistics for this profile, passed on the command line" long_description = "This option lets you use a direct URL to your statistics even if they are password-protected. Just include this option in the URL (clp+password) and $PRODUCT_NAME will treat it as if you had entered the password in the prompt field, and will bypass the prompt field and take you to the statistics." } # password profile = { label = "使用的設定檔" short_description = "The name of the profile to use for this command" long_description = "This specifies a profile which is to be used for the current command-line command. This is typically the first option on any command line that deals with a particular profile, e.g. you might use '-p myconfig -a bd' to rebuild a database for profile myconfig. More generally, this can be used in conjunction with {=docs_option_link('a')=} and other options to build or update or expire databases from the command line, or to generate HTML files. In CGI or web server mode, this is used internally to manage profiles, and should generally not be changed.If this option is a full pathname of an existing file, that file is read as a profile file; otherwise, $PRODUCT_NAME treats it as the name of a profile in the profiles sub$lang_stats.directory of the LogAnalysisInfo $(lang_stats.directory). If that doesn't exist either, $PRODUCT_NAME scans all profiles in that directory to see if the label of the any profile matches the specified value, and uses that profile if it matches. See {=docs_chapter_link('configfiles')=}." } # profile remove_database_data = { label = "移除資料庫資料" } # remove_database_data report_name = { label = "報表名稱" short_description = "The name of the report to generate" long_description = "This specifies the name of a report to generate. This is used as a parameter in various command-line actions, including export_csv_table, email_report, and generate_report_files (see {=docs_option_link('a')=})." } # report_name field_name = { label = "欄位名稱" short_description = "The name of a database field" long_description = "This specifies the name of a database field. It is used in a variety of command-line contexts where a database field name is required, including print_values, print_subitems, and print_items (see {=docs_option_link('a')=})." } # field_name return_address = { label = "退回位址" short_description = "The return address of an email message" long_description = "This specifies the return address of an email message. It is used when sending a report by email with send_report_by_email (see {=docs_option_link('a')=})." } # return_address recipient_address = { label = "接收者位址" short_description = "The recipient address of an email message" long_description = "This specifies the recipient address for an email message. It is used when sending a report by email with send_report_by_email (see {=docs_option_link('a')=})." } # recipient_address smtp_server = { label = "SMTP 伺服器" short_description = "The SMTP server to use to send email" long_description = "This specifies the SMTP server to use to send an email message. It is used when sending a report by email with send_report_by_email (see {=docs_option_link('a')=})." } # smtp_server report_email_subject = { label = "報表郵件主旨" short_description = "The email subject to use when sending na report by email" long_description = "This specifies the email subject to use when sending a report in an email message. It is used when sending a report by email with send_report_by_email (see {=docs_option_link('a')=})." } # report_email_subject send_report_by_email = { label = "以電子郵件傳送報表" } # send_report_by_email session_id = { label = "區間代碼" short_description = "Internal option used to track sessions in the graphical interface" long_description = "This is an internal option used to track sessions in the graphical interface." } # session_id verbose = { label = "命令列輸出類型" short_description = "The types of command-line output to generate" long_description = "
This controls the types of debugging output generated during a command-line action. This option is a sequence of letters, each representing a particular type of command-line output. If the letter corresponding to a type is present in the sequence, that type of output will be generated; if it is not present, that type of output will not be generated. The types, and their corresponding letters, are:
For instance, a value of ew
will show only error messages and basic web server output. A value of elbwfpidDslamnNtqo
will show all possible output.
In CGI mode or web server mode, the output will be sent to a file in the Output $lang_stats.directory of the LogAnalysisInfo $lang_stats.directory; the file will be named Output-profilename, where profilename is the name of the profile. In command line mode (on UNIX and Windows), the output will be sent to the standard output stream.
" } # verbose web_server = { label = "啟動網站伺服器" short_description = "This option controls whether $PRODUCT_NAME starts its built-in web server when it starts (whether it runs in web server mode)" long_description = "This controls whether $PRODUCT_NAME starts its built-in web server. When this option is checked (true), $PRODUCT_NAME starts a web server on the IP address specified by {=docs_option_link('sh')=}, and port specified by {=docs_option_link('wsp')=}, unless it detects that it is running as a CGI program under another web server, in which case it respondes as a CGI program instead, and does not start the server. When this option is unchecked (false), $PRODUCT_NAME never starts the web server, unless it is run from the command line with no parameters, or it is run as a GUI program under MacOS or Windows." } # web_server expand_paths = { label = "擴展區間路徑" short_description = "This option controls whether session paths should be expanded while generating a session paths report" long_description = "This option controls whether session paths should be expanded while generating a session paths report. If this option is true, then all path segments with more than {=docs_option_link('epgt')=} will be expanded. If this option is false, only those segments which have been clicked will be expanded" } # expand_paths update_database = { label = "更新資料庫" } # update_database zoom_value = { label = "聚焦值" short_description = "The zoom value to zoom into a hierarchical report." long_description = "This option is used to specify the zoom value to zoom into a hierarchical report. I.e., -rn location -zv \"United States/\" will zoom the report location to \"United States\"." } # zoom_value } # command_line internal = { active_report = { label = "現行的報表" short_description = "This option specifies which report is generated" long_description = "This option specifies which report is shown, or which report to generate. It is used internally by $PRODUCT_NAME as you move from report to report, but it can also be set in the profile options interface to control which view $PRODUCT_NAME shows when you first view the statistics, or used from the command line to control which report to generate when sending email or generating HTML report." } # active_report } # internal preferences = { miscellaneous = { language = { label = "語言" short_description = "The language module to use to generate language-specific text" long_description = "This option specifies the language module to use. Language modules contain rules for translating from $PRODUCT_NAME's internal text variables to what actually appears in generated HTML pages and other output. Language modules are contained in the languages sub$lang_stats.directory of the LogAnalysisInfo $lang_stats.directory, in a $lang_stats.directory named after the language (for instance, English modules are in a $lang_stats.directory called \"english\"). Module are in several pieces:
lang_stats.cfg: The text of statistics pages
lang_options.cfg: The text of the option names and descriptions.
lang_admin.cfg: The text of the administrative pages.
lang_messages.cfg: The text of error messages and other messages.
The module is split into pieces to allow for partial implementations. For instance, by implementing only the small lang_stats module, you can provide support for a particular language for statistics browsing, without having to spend the considerable time required to fully translate the entire $PRODUCT_NAME interface.
" } # language charset = { label = "字元集" short_description = "The HTML charset to use when displaying pages" long_description = "This option specifies the HTML charset, e.g. UTF-8, to use when displaying pages in the web interface.
" } # charset logout_url = { label = "登出 URL" short_description = "The URL to go to on logout; if empty, goes to login screen" long_description = "This specifies the URL that $PRODUCT_NAME sends you to when you log out of $(PRODUCT_NAME). If this option is blank, it will send you to the $PRODUCT_NAME login screen." } # logout_url never_look_up_ip_numbers = { label = "不使用網域名稱伺服器查詢 IP 位址" short_description = "Whether to ever try to look up hostnames of IP-numbered hosts" long_description = "When this is true (checked), $PRODUCT_NAME will never attempt to look up hostnames from IP numbers; it will use IP numbers for everything. When this is false (unchecked), it will attempt to look up the local hostname when it starts a web server, and it will attempt to look up the hostname of any host which accesses it by HTTP, and it will look up the hostname of any host it encounters in the logs (if {=docs_option_link('luin')=} is true). This option is useful if there is no local Domain Name Server (for instance, if the computer running $PRODUCT_NAME is not connected to a network and is not itself running a DNS)." } # never_look_up_ip_numbers only_look_up_log_ip_numbers = { label = "僅查詢日誌的 IP 位址" short_description = "Look up IP numbers only when they appear in logs, not for local server or remote browsing computer" long_description = "When this is true (checked), $PRODUCT_NAME will look up the hostnames of IP numbers using DNS only when they appear in a log file and {=docs_option_link('luin')=} is on. When this is false (unchecked), $PRODUCT_NAME will still look up numbers in log files, but will also look up the hostname of the computer $PRODUCT_NAME is running on, and the hostnames of computers using $PRODUCT_NAME through web browsers. This option is useful because when it is true, $PRODUCT_NAME will never do any network access, so it can be run on a computer with a dial-up connection without having to be dialed in. When this option is false, $PRODUCT_NAME will perform a DNS lookup when it first starts and when other computers access it, so it will have to be permanently connected to the Internet (or using a DNS server on your local network)." } # only_look_up_log_ip_numbers temporary_files_lifespan = { label = "暫存檔使用期限" unit = "seconds" short_description = "Amount of time to keep temporary files before deleting them (in seconds)" long_description = "This option controls the amount of time, in seconds, $PRODUCT_NAME keeps temporary files before deleting them. Temporary files include temporary profiles (used to browse statistics) and temporary images (used to embed images in statistics pages). Setting this to a high number will ensure that temporary images are around as long as they are needed, but will use more disk space." is_invalid_int_min_message = "The value of field \"$lang_options.preferences.miscellaneous.temporary_files_lifespan.label\" must be of type integer and greater or equal $option_info.preferences.miscellaneous.temporary_files_lifespan.minimum_value." } # temporary_files_lifespan enable_enterprise_for_trial = { label = "當使用試用序號時啟動企業版的特色" short_description = "Whether to enable Enterprise features when using a trial license key" long_description = "This option controls whether Enterprise features are available when trial licensing is in use. This is useful for trying out both Enterprise and Professional feature sets when making a purchase decision." } # enable_enterprise_for_trial prompt_for_trial_tier = { label = "試用層級提示" short_description = "Whether to prompt for Professional/Enterprise switch during trial period" long_description = "This option controls whether the Professional/Enterprise switch is shown during the trial period. This is useful for hiding the Professional/Enterprise switch if only the Professional or Enterprise features are available during the trial period." } # prompt_for_trial_tier talkback = { label = "啟動回報代理功能" short_description = "Whether to send information about devices analyzed to Flowerfire" long_description = "This option controls whether $PRODUCT_NAME sends information to Flowerfire (maker of $PRODUCT_NAME) about the log formats being used. When this option is enabled, $PRODUCT_NAME sends information to Flowerfire (via a port 80 connection to www.sawmill.net). The information sent is only the name of the log format plug-in used in the profile; it does not send your log data, or any other information other than the name of the log format. We will use this information to help us focus our development on the most commonly-used log formats. If this option is off, $PRODUCT_NAME will never send any information to Flowerfire." } } # miscellaneous security = { administrative_remote_user = { label = "遠端管理者" short_description = "The value of REMOTE_USER which marks that user as administrator" long_description = "This option specifies the username which, when present in the REMOTE_USER environment variable in CGI mode, marks that user as the administrator. This can be used to easily integrate web server authentication with the authentication used by $PRODUCT_NAME, so $PRODUCT_NAME uses information passed in the REMOTE_USER environment variable to determine which user is logged in. See {=docs_option_link('sorup')=}." is_empty_message = "Please define a value for field \"$lang_options.preferences.security.administrative_remote_user.label\"." } # administrative_remote_user authentication_command_line = { label = "命令列證明" short_description = "The command line to run to authenticate users" long_description = "This specifies a command line that $PRODUCT_NAME will run when it authenticates users. The command line program must accept two parameters: the username and the entered password. The command line must print the names of the profiles that the user is permitted to access, one name per line. A printed value of *ADMIN* means that the user is an administrator, and may access any profile, as well as accessing the administrative interface (any other response, and the administrative interface will not be available). A printed value of *FAILED* means that the username/password authentication failed.
If this option is blank, $PRODUCT_NAME will use the users.cfg file (in LogAnalysisInfo) to authenticate users. " } # authentication_command_line database_directory_permissions = { label = "資料庫 $lang_stats.directory 權限" short_description = "The permissions $PRODUCT_NAME uses when creating a $lang_stats.directory as part of a database" long_description = "This specifies the file permissions to use when creating a $lang_stats.directory as part of a database. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # database_directory_permissions database_file_permissions = { label = "資料庫檔案權限" short_description = "The permissions $PRODUCT_NAME uses when creating a file as part of a database" long_description = "This specifies the file permissions to use when creating files as part of a database. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # database_file_permissions default_permissions = { label = "預設權限" short_description = "The permissions $PRODUCT_NAME uses when creating a file or $lang_stats.directory (chmod-style)" long_description = "This specifies the file permissions to use when creating files and $lang_stats.directories which do not fall into any other permissions category. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # default_permissions default_profile_permissions = { label = "預設設定檔檔案權限" short_description = "The permissions $PRODUCT_NAME uses when creating the default profile file" long_description = "This specifies the file permissions to use when creating the default profile file. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # default_profile_permissions image_directory_permissions = { label = "影像 $lang_stats.directory 權限" short_description = "The permissions $PRODUCT_NAME uses when creating a $lang_stats.directory containing image files" long_description = "This specifies the file permissions to use when creating a $lang_stats.directory containing image files. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # image_directory_permissions image_file_permissions = { label = "影像檔案權限" short_description = "The permissions $PRODUCT_NAME uses when creating an image file" long_description = "This specifies the file permissions to use when creating an image file. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # image_file_permissions log_analysis_info_directory_permissions = { label = "LogAnalysisInfo $lang_stats.directory 權限" short_description = "The permissions $PRODUCT_NAME uses when creating the LogAnalysisInfo $lang_stats.directory" long_description = "This specifies the file permissions to use when creating the LogAnalysisInfo $(lang_stats.directory). This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # log_analysis_info_directory_permissions password_file_permissions = { label = "密碼檔案權限" short_description = "The permissions $PRODUCT_NAME uses when creating the password file" long_description = "This specifies the file permissions to use when creating the password file. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # password_file_permissions profiles_directory_permissions = { label = "設定檔 $lang_stats.directory 權限" short_description = "The permissions $PRODUCT_NAME uses when creating a $lang_stats.directory containing profile files" long_description = "This specifies the file permissions to use when creating a $lang_stats.directory containing profile files. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # profile_directory_permissions profile_permissions = { label = "設定檔檔案權限" short_description = "The permissions $PRODUCT_NAME uses when creating a profile file" long_description = "This specifies the file permissions to use when creating a profile file. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # profile_file_permissions security_mode = { label = "權限設定" short_description = "The level of security to use" long_description = "$PRODUCT_NAME provides a number of security features to prevent unauthorized access to your profiles, or to your system. The Security Mode is one of these; see also {=docs_chapter_link('security')=}.
The security mode cannot be set from the web GUI-- it can only be set by modifying the $PRODUCT_NAME preferences.cfg file (in the LogAnalysisInfo folder) with a text editor. The security mode may be one of the following:
browse_and_modify
. This is the default. This mode allows web users to create new profiles, and modify existing profiles. It provides the full power of the $PRODUCT_NAME web interface from any web browser. It relies on the $PRODUCT_NAME password for security; users who have the password can create profiles, and modify existing profiles. Users who do not have the password can make temporary modifications, during browsing, to existing profiles, but they cannot modify the secure options. Secure options are those which cause files on the server to be read or written in any way; examples include {=docs_option_link('phf')=}.
browse_only
. This mode adds an additional layer of security beyond what is provided by the password, by preventing users from creating or modifying profiles, even if they know the password. It allows the user to browse existing profiles, and nothing more. In this mode, profile options can be modified by directly modifying the {=docs_chapter_link('configfiles')=}, or by running another installation of $PRODUCT_NAME in Browse and Modify mode, and copying the profile.
Either of the options are secure enough to protect your system from malicious users, because all require the password before any profiles may be created or modified, and before any secure options may be changed (changes to the non-secure options cannot harm your system). If you are highly concerned about security, you may want to set the security mode to Browse Only, to prevent even password-equipped users from doing any damage.
" browse_and_modify = "完整" browse_only = "唯讀" } # security_mode server_directory_permissions = { label = "伺服器 $lang_stats.directory 權限" short_description = "The permissions $PRODUCT_NAME uses when creating the server $lang_stats.directory" long_description = "This specifies the file permissions to use when creating the server $(lang_stats.directory). This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # server_directory_permissions show_docs_links_in_stats = { label = "在統計頁面上顯示文件的超連結" short_description = "Whether to include links to the online documentation in statistics pages" long_description = "This specifies whether links to the online documentation should appear in statistics pages, where appropriate. If this option is true (checked) links to the documentation will appear. If this option is false (unchecked) documentation links will not appear. This option is useful if you wish to hide the online documentation from your statistics-browsing users." } # show_docs_links_in_stats show_full_operating_system_details_in_errors = { label = "當錯誤時顯示全部的詳細內容" short_description = "Show full operating system version details in the text of error messages" long_description = "This controls whether $PRODUCT_NAME displays the full operating system version details in error message. It is useful for $PRODUCT_NAME to do this because this helps to debug problems when they are reported. However, full operating system details could be of use to someone attempting to gain unauthorized access to your server, since it would allow them to determine if you are running a vulnerable version of the operating system. This should not be an issue if you keep your operating system up to date, but if you'd rather that this information not be public, you should turn this option off. " } # show_full_operating_system_details_in_errors show_only_remote_user_profiles = { label = "顯示符合遠端使用者的設定檔" short_description = "Whether to show only the profiles whose names start with the value of REMOTE_USER" long_description = "When this is true (checked), the main profile list will show only the profile, if any, whose names start with the value of REMOTE_USER followed by a dash (-). For instance, if REMOTE_USER is \"tom,\" the Main Menu will show profiles named \"tom-access,\" \"tom-referrer,\" or \"tom-stats,\" but will not show \"bob-access,\" \"tom access,\" or \"tom.\" When this is false (unchecked), or if REMOTE_USER if empty (undefined), or if REMOTE_USER is equal to the value of {=docs_option_link('aru')=}, then all profiles will appear in the Main Menu. REMOTE_USER is a web server CGI variable which contains the username of the user who logged in through an authentication screen (e.g. htaccess or realms authentication). This option provides a simple mechanism for hiding users' profiles from each other, provided $PRODUCT_NAME is run in a section of the site protected by username/password authentication. For instance, you can run $PRODUCT_NAME in CGI mode, protect the $PRODUCT_NAME directory using authentication, turn on this option, and send the CGI URL to your users, so they will be able to log in to $PRODUCT_NAME with web server authentication, and will only be able to see their own profiles. This option is only useful in CGI mode, and should not be turned on in web server mode (if it is turned on, it will make all profiles invisible), unless you are also running in CGI mode. " } # show_only_remote_user_profiles temporary_profile_permissions = { label = "暫存設定檔檔案權限" short_description = "The permissions $PRODUCT_NAME uses when creating a temporary profile file" long_description = "This specifies the file permissions to use when creating a temporary profile file. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # temporary_profile_permissions trusted_hosts = { label = "信任的主機" short_description = "The hostnames of computers which are \"trusted,\" and do not need to enter passwords" long_description = "This is a list of the hostnames of computers which are trusted. Hostnames should be separated from each other by spaces. Any browsing host which contains any of the listed hostnames as part of its hostname will be trusted, so entire subdomains can be trusted by entering the domain. Example:If you are connecting from a trusted host, it may be difficult to remove that trusted host using the web interface, because $PRODUCT_NAME will refuse to allow you administrative access to change the trusted host, because your host will no longer be trusted. One solution to this is to modify the preferences.cfg file (in the LogAnalysisInfo $lang_stats.directory) manually, with a text editor, to remove the trusted host. Another solution is to connect from another system, log in normally, and remove the trusted host that way." } # trusted_hosts } # security server = { cgi_directory = { label = "CGI $lang_stats.directory" short_description = "The $lang_stats.directory containing $PRODUCT_NAME, relative to the server root" long_description = "This is the $lang_stats.directory containing the $PRODUCT_NAME CGI program, relative to the root of the web server. This should be as it appears in a URL; forward slashes (/) should separate sub$lang_stats.directories. It should begin and end with a forward slash (/), unless it is empty (i.e. $PRODUCT_NAME is in the root $lang_stats.directory). For instance, if the $PRODUCT_NAME CGI program is inside the \"$PRODUCT_EXECUTABLE_DOCS\" $lang_stats.directory, which is inside the \"scripts\" $lang_stats.directory of your web server, then this should be /scripts/$PRODUCT_EXECUTABLE_DOCS/. This is used in the rare cases when $PRODUCT_NAME needs to build a full (non-relative) URL for itself, ex.
$PRODUCT_NAME can automatically compute all parts of the URL except the CGI $lang_stats.directory part (\"/cgi-bin/\" above); this option specifies that part." is_empty_message = "請為欄位 \"$lang_options.preferences.server.cgi_directory.label\" 輸入值." } # cgi_directory log_analysis_info_directory = { label = "LogAnalysisInfo $lang_stats.directory 位置" short_description = "A $lang_stats.directory where $PRODUCT_NAME can store profiles and other information" long_description = "This specifies a local $lang_stats.directory where $PRODUCT_NAME can store profiles, databases, preferences, and other information. This $lang_stats.directory must exist and be writable by $PRODUCT_NAME, or must be in a $lang_stats.directory which is writable by $PRODUCT_NAME (so $PRODUCT_NAME can create it). If this option is empty, $PRODUCT_NAME assumes that the $lang_stats.directory is named LogAnalysisInfo, and is found in the same $lang_stats.directory as $(PRODUCT_NAME). If a file named LogAnalysisInfoDirLoc exists in the same $lang_stats.directory as $(PRODUCT_NAME), the contents of that file are used as the pathname of this $lang_stats.directory, and this option is ignore. If the environment variable LOGANALYSISINFODIR is set, its value is used instead, and this option is ignored." } # log_analysis_info_directory maximum_cpu_usage_percent = { label = "CPU 使用量上限" unit = "%" short_description = "Percent of CPU time to use while processing log data" long_description = "
This controls how much CPU (processor) time $PRODUCT_NAME uses while it is processing log data. If this is set to 100, $PRODUCT_NAME will use as much CPU time as possible, resulting in highest performance. If this is set to 50, $PRODUCT_NAME will pause for one second every second of processing when possible, resulting in an average CPU usage of 50%; all tasks will take twice as long to complete. Any value from 1 to 100 is allowed, and on most platforms $PRODUCT_NAME will use the requested percentage of the CPU, but on some platforms (especially older platforms), any value other than 100% will cause $PRODUCT_NAME to use 50% of the CPU.
Lower values may be useful in environments where other users or processes need higher priority than $PRODUCT_NAME, and where the operating system's own priority mechanisms are not enough to provide that. In general, you should leave this at 100 unless $PRODUCT_NAME's CPU usage is causing problems, and when possible you should use the operating system's own priority mechanism (e.g. nice
for UNIX style systems, or the Task Manager in Windows) to set the process priority lower, rather than using this option. Process management is best performed by the operating system-- individual processes like $PRODUCT_NAME cannot manage themselves nearly as well as the operating system can manage them.
This specifies the type and structure of the fields of the database. See {=docs_chapter_link('hierarchies')=} for information on the different fields.
Each field in the database represents one way that the log data is broken down. For instance, if the database has two fields, a page field and a host field, then it will be possible to view the log data broken down by page, or by host, or in combinations of page and host.
There are four options which can be set for each field:
" is_invalid_number_message = "請輸入一個合法的資料庫更新時間, 該數字單位為秒且數字需 >= 1." } # automatically_update_when_older_than database_directory = { label = "資料庫 $lang_stats.directory" short_description = "The location of the database" long_description = "This is the pathname of a database on disk. If this option is blank, $PRODUCT_NAME will store the database in a $lang_stats.directory with the same name as the profile, in the Databases $lang_stats.directory in the LogAnalysisInfo $(lang_stats.directory).
Information from log files is stored in this database, and when reports are generated, they are generated using the information in the database. See {=docs_chapter_link('database')=}." is_empty_message = "請輸入資料庫 $lang_stats.directory." } # database_directory database_type = { label = "資料庫類型" internal = { label = "內建的" } # internal mysql = { label = "MySQL" } # mysql } # database_type lock_database_when_in_use = { label = "當資料庫使用時鎖定資料庫" } # lock_database_when_in_use mysql_server_hostname = { label = "主機名稱" short_description = "The hostname of the MySQL server" long_description = "This specifies the hostname or IP of the MySQL server used as the back-end database" is_empty_message = "請輸入 MySQL 主機名稱." } # mysql_server_hostname mysql_server_password = { label = "密碼" short_description = "The password of the MySQL server" long_description = "This specifies the password to use to access the MySQL server uses as the back-end database" } # mysql_server_password mysql_server_username = { label = "使用者名稱" short_description = "The username of the MySQL server" long_description = "This specifies the username to use to access the MySQL server uses as the back-end database" is_empty_message = "Please define a MySQL username." } # mysql_server_username mysql_database_name = { label = "資料庫名稱" short_description = "The name of the MySQL database" long_description = "This specifies the name of the database on the MySQL server uses as the back-end database" is_empty_message = "請輸入一個 MySQL 資料庫名稱." is_invalid_name_message = "資料庫名稱不合法的字元. 請只能使用字元與數及及底線但沒有空白的資料庫名稱." } # mysql_database_name prompt_before_erasing_database = { label = "刪除資料庫時需警示" short_description = "True if $PRODUCT_NAME should prompt before erasing a non-empty database" long_description = "This controls whether $PRODUCT_NAME will prompt for verification before erasing an existing disk-based database. If this option is true, and Rebuild Database is clicked, $PRODUCT_NAME will ask if you really want to destroy all data in the database. If this option is false, $PRODUCT_NAME will erase the database without asking, and rebuild it from the log data." } # prompt_before_erasing_database } # options tuning = { label = "資料庫調效" option_group = true edit_button = "編輯資料庫調效" edit_form_title = "編輯資料庫調效" is_invalid_byte_number_message = "請為 \"$param1\" 輸入合法的值." build_all_indices_simultaneously = { label = "同時建立所有索引" short_description = "Build all indices simultaneously after processing log data, for better performance" long_description = "This option affects the stage of log processing when indices are rebuilt. This option only has an effect if {=docs_option_link('bidlp')=} is false. If this option is true, $PRODUCT_NAME will scan through the main database table just once during the index rebuilding stage, building all indices simultaneously. If this option is false, $PRODUCT_NAME will build each index separately, scanning through the main table once per index. Turning this option on can greatly speed up index building by combining all the table scans into one, but will use much more memory, since all indices will need to be in memory at the same time. See also {=docs_option_link('bxtais')=}." } # build_all_indices_simultaneously build_all_xref_tables_simultaneously = { label = "同時建立所有交互關聯的表格" short_description = "Build all cross-reference tables simultaneously after processing log data, for better performance" long_description = "This option affect the stage of log processing when cross-reference tables are rebuilt. This option only has an effect if {=docs_option_link('bxtdlp')=} is false. If this option is true, $PRODUCT_NAME will scan through the main database table just once during the cross-reference rebuilding stage, building all cross-reference tables simultaneously. If this option is false, $PRODUCT_NAME will build each cross-reference table separately, scanning through the main table once per cross-reference table. Turning this option on can greatly speed up cross-reference building by combining all the table scans into one, but will use much more memory, since all cross-reference tables will need to be in memory at the same time. See also {=docs_option_link('bxtais')=}." } # build_all_xref_tables_simultaneously build_xref_tables_in_threads = { label = "在線程中建立交互關聯的表格" short_description = "Build cross-reference tables in threads, and merge them at the end" long_description = "This option affects multi-processor database builds. When this option is true, each thread (processor) builds the cross-reference tables for its part of the database separately, and they are merged in a final stage to create the cross-reference tables for the main database. When this option is false, threads do not build cross-reference tables; the cross-reference tables are build in the final stage from the main table (which is merged from the threads' main tables). If your system has fast disk I/O, it is generally best to leave this on, to spend as much time as possible using all processors. But if disk I/O is slow, the I/O contention between processes may slow both threads down to the point that using multiple processors is actually slower than using one." } # build_xref_tables_in_threads build_indices_in_threads = { label = "在線程中建立索引" short_description = "Build indices in threads, and merge them at the end" long_description = "This option affects multi-processor database builds. When this option is true, each thread (processor) builds the indices for its part of the database separately, and they are merged in a final stage to create the indices for the main database. When this option is false, threads do not build indices; the indices are build in the final stage from the main table (which is merged from the threads' main tables). If your system has fast disk I/O, it is generally best to leave this on, to spend as much time as possible using all processors. But if disk I/O is slow, the I/O contention between processes may slow both threads down to the point that using multiple processors is actually slower than using one." } # build_indices_in_threads build_indices_in_memory = { label = "記憶體中建立索引" short_description = "Build indices in memory, rather than using memory-mapped files on disk" long_description = "When this option is true, database indices are held completely in memory during database builds. When this option is false, database indices are mapped to files on the disk. Keeping the indices in memory can increase the performance of the index building part of database builds, sometimes by a factor of 3x or more, but requires enough memory to hold the indices (which can exceed 1G in some cases)." } # build_indices_in_threads build_indices_during_log_processing = { label = "在日誌程序中建立索引" short_description = "Build indices on the fly while log data is read, rather than in a separate stage" long_description = "This option affect the stages of log processing when indices are built. When this option is true, indices are kept in memory during log processing, and are incrementally updated on the fly as new log lines are processed. When this option is false, indices are updated in a single stage after all log data has been processed. Turning this option on can speed database building because it eliminates the need to re-read the main database table after processing log data, but can require much more memory, because all indices must be kept in memory while log data is processed." } # build_indices_during_log_processing build_xref_tables_and_indices_simultaneously = { label = "同時建立交互關聯的表格及索引" short_description = "Build cross-reference tables and indices simultaneously after processing log data, for better performance" long_description = "This option affects the stages of log processing when cross-reference tables indices are rebuilt. This option only has an effect if {=docs_option_link('bidlp')=} and {=docs_option_link('bxtdlp')=} are false. If this option is true, $PRODUCT_NAME will combine the index-building and cross-reference table building stages of log processing into one, scanning through the main database table once and building both indices and cross-reference tables. If this option is false, $PRODUCT_NAME will build indices and cross-reference tables separately, scanning through the main table twice. Turning this option on can speed up index and cross-reference table building by combining the two table scans into one, but will use more memory, since both the cross-reference tables and the indices will need to be in memory at the same time." } # build_xref_tables_and_indices_simultaneously build_xref_tables_during_log_processing = { label = "在日誌程序中建立交互關聯的表格" short_description = "Build cross-reference tables on the fly while log data is read, rather than in a separate stage" long_description = "This option affect the stages of log processing when cross-reference tables are built. When this option is true, cross-reference tables are kept in memory during log processing, and are incrementally updated on the fly as new log lines are processed. When this option is false, cross-reference tables are updated in a single stage after all log data has been processed. Turning this option on can speed database building because it eliminates the need to re-read the main database table after processing log data, but can require much more memory, because all cross-reference tables must be kept in memory while log data is processed." } # build_xref_tables_during_log_processing hash_table_expansion_factor = { label = "資料庫表格擴充因子" short_description = "Factor by which a hash table expands when necessary" long_description = "This controls the factor by which the database hash table, an internal table used to store information in the database, expands when necessary. A factor of 2 means that the database table will double in size when it needs more space, while 10 means that the database table size will increase by a factor of 10. Setting this to a higher value will eliminate the need for some internal data shuffling, and will speed processing a bit; however, it will also use more memory and disk space." } # hash_table_expansion_factor hash_table_starting_size = { label = "資料庫表格起始化大小" short_description = "Initial size of a database hash table" long_description = "This controls the initial size of the database hash table, an internal table used to store information in the database. Setting this to a higher value will eliminate the need for some internal data shuffling, and will speed processing a bit; however, it will also use a bit more memory." } # hash_table_starting_size hash_table_surplus_factor = { label = "資料庫表格過剩因子" short_description = "Number of times larger a hash table is than its contents" long_description = "This controls the amount of surplus space maintained in the database hash table, an internal table used to store information in the database. Setting this to a higher value will increase database access speed, but will use more memory. This value represents the proportion of space in the table that should remain free; when that space fills up, the table is expanded by {=docs_option_link('htef')=}. A value of 1 means that at least 10% of the table will always be free, a value of 2 means that at least 20% is free, and so on, up to a value of 9, where at least 90% of the table is kept free at all times. With a value of 1, the same table size will hold 9 times more data than with a value of 9, so the data section of your database (which is often the largest part) will be one-ninth the size with a value of 1 than it would be with a value of 9. However, lower values slow down database building and accessing slightly." } # hash_table_surplus_factor list_cache_size = { label = "緩衝區大小清單" short_description = "Maximum memory used by the list cache" long_description = "This option specifies the maximum memory used by the list cache. The list cache is used when tracking unique item lists (e.g. visitors) or database indices, to improve performance when lists get very large. Normally, lists are stored in a form that uses minimal memory, but does not allow items to be added quickly to the list in some situations. When a list appears to be slow, it is moved to the list cache, and expanded into a high-memory-usage, high-performance format. At the end of the operation, it is compacted into the low-memory-usage format again. When the cache is full, the least-used cached lists are compacted. Setting this option higher will use more memory during database cross-reference group building and index building, but will allow more lists to be kept in the fast-access format -- this usually improves performance, sometimes dramatically." } # list_cache_size maximum_main_table_segment_merge_size = { label = "合併最大量的主要表格部分" short_description = "Maximum size of main table segment to merge; larger segments will be copied" long_description = "This option specifies the maximum size of a main table segment that will be merge while merging databases. If a segment is smaller than this, the merge will be done by adding each entry to the existing final segment of the main database table; if there are more than this number of entries, the merge will be done by copying the entire table and indices to the main database, creating a new segment. Copying is faster, but since it creates a new segment it fragments the database, slowing queries slightly. Therefore, setting this to a high value will improve the query performance of the final database, at a cost in log processing performance." } # maximum_main_table_segment_merge_size maximum_main_table_segment_size = { label = "最大量的主要表格部分大小" short_description = "The maximum size of one segment of main database table" long_description = "This determines the maximum size of one segment of the main database table. Segments are files stored in the database directory; $PRODUCT_NAME prefers to leave the entire table in a single file, but operating system limitations sometimes make that impossible. So when the table exceeds this size, it is split into multiple files, each smaller than this size. This reduces performance somewhat, but allows arbitrarily large datasets to be represented in a database. If you set this higher than the operating system allows, you will get errors when processing very large datasets (10 million lines of log data corresponds roughly to 1GB of main table, depending on the database structure and other factors)." } # maximum_main_table_segment_size maximum_xref_table_segment_size = { label = "最大量的交互關聯表格部分大小" short_description = "The maximum size of one segment of a cross-reference database table" long_description = "This determines the maximum size of one segment of a cross-reference database table. Segments are files stored in the database directory; $PRODUCT_NAME prefers to leave the entire table in a single file, but operating system limitations sometimes make that impossible. So when the table exceeds this size, it is split into multiple files, each smaller than this size. This reduces performance significantly, but allows arbitrarily large datasets to be represented in a database. If you set this higher than the operating system allows, you will get errors when processing very large datasets. Most operating systems can handle files up to 2G in size; a setting of 1G should be safe in most cases, and should prevent segmentation for all but the largest datasets." } # maximum_xref_table_segment_size maximum_xref_segment_merge_size = { label = "合併最大量的交互關聯表格部分" short_description = "Maximum size of a cross-reference table segment to merge; large segments will be copied" long_description = "This option specifies the maximum size of a cross-reference table segment which will be merged during a database merge operation (e.g. at the end of a multiprocessor database build). Segments large than this will be copied to the main database, and will form their own segments; segments smaller than this will be merge into the main database. Copies can be much faster than merges, but result in a more segmented main database, making queries slower. Therefore, setting this to a high value will improve the query performance of the final database, at a cost in log processing performance." } # maximum_xref_segment_merge_size } # tuning } # database log = { fields = { label = "日誌欄位" short_description = "Information about a particular field in the log" long_description = "This describes a single field in the log data. You will generally not need to use this option unless you are creating your own log format description file.
A log field may be either an actual field which is present in each log entry of the file (for instance, the \"page\" field, or the \"hostname\" field), or a derived field which is not present in log entries, but is derived from the entries which are present, and from other information. Derived fields include fields like \"domain description,\" which is a textual description of the host domain (e.g. \"France\" for .fr), and is derived from the hostname field, or the \"day of week\" field, which is derived from the date/time field, or the \"operating system\" field, which is derived from the agent field. Derived fields cannot be deleted or edited, though they will disappear if the field they are derived from is deleted. See below for more information about specific derived fields.
For fields which are not derived, you can specify a number of parameters. The values of the parameters are as follows:
page (page
): The \"page hit\" field of a web log, or the \"URL hits\" field of a proxy log, or any other field in a /-divided pathname format; e.g. /mypages/dir/file.html. This also acts like a \"hierarchical\" field.
host (host
): The browsing hostname, or any field in hostname format; e.g. my.host.com. This field will be used to derive the domain description field. This also acts like a \"hierarchical\" field.
URL (url
): Any field in URL format (e.g. http://hostname/page.html). The search phrase field is derived from this field.
date_time (date/time
): A combined date/time field. The format of this field depends on the setting of {=docs_option_link('df')=} and {=docs_option_link('tf')=}. If this field is not present in the log, but date and time are, this field will be derived from those fields. The day of week, hour of day, week of year, and day of year fields are derived from this field.
date (date
): A date; year, month, and day. The format of this field depends on the setting of {=docs_option_link('df')=}.
time (time
): A time of day; hour, minute, and second. The format of this field depends on the setting of {=docs_option_link('tf')=}.
agent (agent
): A user agent field. The browser OS, browser type, and browser version fields are derived from this field.
size (size
): The size (bytes transferred) field. This field will be used to compute bandwidth information. The size range field is derived from this field.
integer (integer
): Any field whose value is an integer (e.g. 67).
response (response
): The \"server response\" field, containing the numeric HTTP server response code (e.g. 200, 404).
hierarchical (hierarchical
): Any field which is multi-level hierarchical. The hierarchy divider and other parameters can be specified below. See {=docs_chapter_link('hierarchies')=}.
flat (flat
): Any other field which is hierarchical flat; all fields are directly below the root of the hierarchy. See {=docs_chapter_link('hierarchies')=}.
Index: This specifies the index of this log field in the log data. For instance, if this is the first log field in the entry, this should be 1. If this is the fifth log field in the line, it should be 5. This can be left 0 if the log field is being filled in by {=docs_option_link('pre')=} or by parsing filters.
Subindex: This specifies the subindex of this log field in the log data. This can usually be left at 0. A subindex is required only when the log field is contained inside another quoted field. In that case, the position of the quoted field is specified using the index, and the subindex indicates the position within the quoted field, by space-separated subfield. This can be left 0 if the log field is being filled in by {=docs_option_link('pre')=} or by parsing filters.
Hierarchy dividers: This specifies the character(s) which divide hierarchy levels in this field (if this field is hierarchical). Up to three characters may be specified. For instance, in a standard \"page\" field (e.g. /one/sample/page.html), the divider would be / or /?, or /?& (include the ? if you want the page field to be split on the URL parameters divider; include the & if you want it split between parameters). See {=docs_chapter_link('hierarchies')=}.
Left-to-right hierarchy: This specified whether the hierarchy is left-to-right (i.e. with the higher hierarchy levels at the left, like /one/sample/page.html), or right-to-left (i.e. with the higher hierarchy level at the right, like some.hostname.com). See {=docs_chapter_link('hierarchies')=}.
Leading hierarchy divider: This specifies whether the field has a hierarchy divider at its highest end (e.g. /one/sample/page.html, which starts with /), or not (e.g. one/sample/page.html or some.hostname.com, which have hierarchy dividers only inside the field).
Case sensitive: This controls whether the field is case-sensitive. When this is false, $PRODUCT_NAME treats items as the same if they differ only in the case (uppercase/lowercase); for instance, index.html and Index.html are treated as the same page. The case of the item as it appears in statistics is determined by the case of the first item $PRODUCT_NAME sees while processing the log data, so if the first hit is on index.html and the second is on Index.html, it will appear in the statistics as two hits on index.html. When this option is true, $PRODUCT_NAME treats differently-cased items as different items, so in the example above, the statistics would list one hit on index.html, and one hit on Index.html.
domain description. This field is derived from the hostname field. It is a textual description of the top-level domain of the hostname. For instance, the host myhost.fr has a domain description of \"France (.fr),\" and myhost.edu has a domain description of \"Educational (.edu).\"
referrer domain. This field is derived from the referrer field. It is a textual description of top-level domain of the referrer. For instance, the referrer http://www.myhost.fr/index.html has a domain description of \"France (.fr),\" and http://myhost.edu/ has a domain description of \"Educational (.edu).\"
location. This field is derived from the host field. It is the country, region, and city of the location of the IP address in the host field, as computed using the GeoIP database. It is a hierarchical field, so you can zoom in to countries to see regions, and into regions to see cities.
size range. This field is derived from the size field. It is the power-of-ten range into which the size of the transferred object falls. For instance if an HTML page is transferred which is 6k in size, this field will be \"1k - 10k.\" If a 17k page is transferred, this will be \"10k - 100k.\"
operating system. This field is derived from the agent field. This is the operating system used by the browsing user, e.g. \"Windows ME.\"
web browser. This field is derived from the agent field. This is the web browser type and version used by the visitor. For instance, if the visitor browsed your web site with Netscape 5.0, this will be \"Netscape 5.0.\" This field is hierarchical, so the top level will show just \"Netscape\", and clicking it will show the version and minor version numbers.
search engine. This field is derived from the referrer field. It shows the search engine used by the visitor to find your site. For instance, if the user searched in Google for \"noodle recipes,\" and found your site, the value of this field will be \"Google.\" Most hits are not the direct result of clicking in a web search engine's list page, so for most hits, this field will be empty.
$PRODUCT_NAME determines which search engine contributes which hit by comparing the referrer field with the values listed in the LogAnalysisInfo/SearchEngines file, so you can modify that file if you want to add support for new search engines.search phrase. This field is derived from the referrer field. It shows the search phrase used in web search engines by the visitor who contributed to this hit. For instance, if the user searched in Google for \"noodle recipes,\" and found your site, the value of this field will be \"noodle recipes.\" Most hits are not the direct result of clicking in a web search engine's list page, so for most hits, this field will be empty.
date/time. This is the only field which may be either a real (non-derived) log field or a derived log field. In some log formats, the date and time are specified together in a single field (see {=docs_option_link('df')=} and {=docs_option_link('tf')=}); in those log formats, the date/time field is a single non-derived log field. In other log formats, the date and time fields are separate; in those formats, the date/time field is derived from the date and time fields. In a database, you should use the date/time field, rather than the separate date or time fields, to take full advantage of the date/time hierarchy.
day of week. This field is derived from the date/time field (which may in turn be derived from the date and time fields). It is the day of week corresponding to the date/time. For instance, a date/time of \"03/Mar/1999 09:34:56\" would have a day of week of \"Monday.\"
hour of day. This field is derived from the date/time field (which may in turn be derived from the date and time fields). It is the hour of day corresponding to the date/time. For instance, a date/time of \"03/Mar/1999 09:34:56\" would have a day of week of \"9:00 AM - 10:00 AM.\"
day of year. This field is derived from the date/time field (which may in turn be derived from the date and time fields). It is the number of the day of the year. For instance, January 1 is \"1\", January 20 is \"20\", and February 10 is \"41\".
week of year. This field is derived from the date/time field (which may in turn be derived from the date and time fields). It is the number of the week of the year. For instance, for hits on the first seven days of the year (January 1 - 7, inclusive) this field will be \"1\". For hits one the second week of the year (January 8 - 14) this field will be \"2\", and so on.
worm. This field is derived from the page field. It shows the name of the worm for each hit, or \"(not a worm)\" if the hit was not a worm hit (worms are programs that attempt to infect other computer, usually through exploiting vulnerable versions of servers like web servers). Worms are detected using the LogAnalysisInfo/Worms file, so you can edit this file if you want to add detection of additional worms.
spider. This field is derived from the agent field. It shows the name of the spider for each hit, or \"(not a spider)\" if the hit was not a spider hit. Spiders are programs that \"walk\" from page to page on the Internet, reading each page and doing something with it; for instance, search engines use spiders to build their databases of Internet pages. Spiders are detected using the LogAnalysisInfo/Spiders file, so you can edit this file if you want to add detection of additional spiders.
Most users will edit the log fields from the web GUI, but power users may wish to edit them by editing the profile file using a text editor. In the profile file, the format is \"log_field_info\", followed by \"standard\", followed by a list of log fields, followed by \"field_end\". Each field in the list contains the options in the order listed above, i.e. field name, field type, index, subindex, dividers, left-to-right, leading divider, case sensitive, followed by an extra unused option which should be left blank. See any log format description file for a good example of this format.
" new_form_title = "新日誌欄位" edit_form_title = "編輯日誌欄位" new_button = "新日誌欄位" derived_log_fields_label = "擷取日誌欄位" confirm_delete_message = "你確定要刪除日誌欄位 \"$param1\" 嗎?" delete_info = "刪除日誌欄位, 請稍等." save_info = "儲存日誌欄位, 請稍等." case_sensitive = { label = "事件靈感度" } # case_sensitive dividers = { label = "分配者" } # index = { label = "索引" is_invalid_number_message = "請輸入合法索引, 數字大於或等於 0." } # index leading_divider = { label = "主要分配者" } # leading_divider label = { label = "日誌欄位名稱" is_empty_message = "請輸入日誌欄位名稱." is_duplicate_message = "日誌欄位名稱重複. 請輸入一個不同的日誌欄位名稱." } left_to_right = { label = "" } # left_to_right left_to_right_hierarchy = { label = "扔到正確的系級" } # left_to_right_hierarchy subindex = { label = "次索引" is_invalid_number_message = "請輸入合法的伺索引, 數字大於或等於 0." } # subindex type = { label = "類型" } # type } # fields filters = { label = "日誌過濾" short_description = "Specifies one filter to accept or reject log entries" long_description = "$PRODUCT_NAME accepts or rejects entries in the log data based on a collection of filters. These filters can be used to display only part of the log data, for instance if you're interested only in the hits on a particular $lang_stats.directory, or on a particular day; or they can be used to perform conversions, for instance to replace an IP address with the name of the user of that computer. The filters are very powerful; you can use them to prune or convert the data in almost any imaginable way. The log.filters node contains one subnode for each log filter; each is a statement written in {=docs_chapter_link('salang')=}. See {=docs_chapter_link('filters')=} for more information." new_form_title = "新日誌過濾" edit_form_title = "編輯日誌過濾" new_button = "新日誌過濾" confirm_delete_message = "你確定你要刪除日制過濾 \"$param1\" 嗎?" delete_info = "刪除日誌過濾, 請稍等." action = { label = "動作" new_button = "新動作" add_action_info = "按下 \"新動作\" 按鈕來新增一個或多個的動作." sort_label = "動作排序" confirm_delete_message = "你確定要刪除此動作?" new_form_title = "新動作" edit_form_title = "編輯動作" } actions = { label = "動作" option_group = true accept = { label = "接受日誌項目" text = "接受該日誌項目" } # accept concatenate = { label = "串連" text = "串連 $param1 並將結果寫入 $param2" plus_label = "加" value_label = "值" value_of_log_field_label = "日誌欄位的值" write_result_label = "將結果寫入日誌欄位" } # concatenate convert_to_lowercase = { label = "轉為小寫" text = "將 $param1 轉為小寫" } # convert_to_lowercase convert_to_uppercase = { label = "轉為大寫" text = "將 $param1 轉為大寫" } # convert_to_uppercase copy = { label = "複製" text = "複製 $param1 到 $param2" copy_from_label = "複製日誌欄位" copy_to_label = "到日誌欄位" } # copy match_regexp_copy = { label = "符合常規表示法並複製插入的部分" text = "配對 $param1 常規表示法 \"$param2\" 及複製" text_2 = "$param3 到 $param4" match_label = "符合日誌欄位" regexp_label = "常規表示法" copy_to_label = "複製 $param1 到日誌欄位" info_1 = "Set the part of the regular expression which has to be copied in parenthesizes ( )." info_2 = "$param1 contains the match result of the 1st parenthesized section, $param2 of the second, etc." } # copy_parenthesized_section_of_regexp find_and_replace = { label = "尋找及取代" text = { value = "在 $param1 \"$param2\" 尋找" replace_all = "將所有符合 \"$param3\" 的取代" replace_first = "將第一個符合 \"$param3\" 的取代" replace_last = "將最後一個符合 \"$param3\" 的取代" } # text find_label = "在日誌欄位中尋找" value_label = "值" replace_label = "取代" value_2_label = "值" replace_all_label = "全部 符合" replace_first_label = "第一個 符合" replace_last_label = "最後的 符合" blank_field_info = "(使欄位空白來刪除符合的值)" } # find_and_replace reject = { label = "拒絕日誌項目" text = "拒絕日誌項目並停止過濾" } # reject set = { label = "設定" text = "將 $param1 設定到 \"$param2\"" set_label = "設定日誌欄位" value_label = "to value" blank_field_info = "(使欄位空白來設定空白值)" } # set } # actions advanced_expression = { is_empty_message = "無過綠表示法. 請輸入過濾表示法." available_log_fields_info = "有效的 日誌欄位 將在過濾表示法中使用" } boolean_operator = { any_button = "符合 任何 條件 (OR)" all_button = "符合 所有 條件 (AND)" custom_button = "客製" sequence_label = "Boolean 操作順序" sequence_example = "例如: (A or B) 及 (C or D)" or = "or" and = "and" } comment = { label = "註解" } conditions = { new_button = "新條件" sort_label = "條件排序" add_condition_info = "按下 \"新條件\" 來新增一個或多個條件." confirm_delete_message = "你確定要刪除該條件嗎?" new_form_title = "新條件" edit_form_title = "編輯條件" if_label = "If - 條件成立" if_label_2 = "If" then_label = "Then - 條件被執行" then_label_2 = "Then" else_label = "Else - 條件不成立" else_label_2 = "Else" else_button = "如果條件不成立新增被執行的設定動作" } disabled = { label = "過濾啟動" } # disabled expression = { ids = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" } expression_operator = { eq = "is equal" lt = "is less than" gt = "is greater than" lteq = "is less than or equal" gteq = "is greater than or equal" contains = "contains" starts_with = "starts with" ends_with = "ends with" matches_regular_expression = "matches regular expression" matches = "matches wildcard expression" not_eq = "is NOT equal" not_contains = "NOT contains" not_starts_with = "NOT starts with" not_ends_with = "NOT ends with" not_matches_regular_expression = "NOT matches regular expression" not_matches = "NOT matches wildcard expression" lt_now = "is older than number of days" lt_now_text = "is older than $param1 days" } filter = { label = "過濾" type = { label = "過濾類型" option_group = true conditional = { label = "如果條件符合, 執行一個動作" } action = { label = "僅執行一個動作" } advanced = { label = "進階的表示法語法" } } # type } # filter filter_name = { label = "名稱" new_log_filter_text = "新日誌過濾" is_empty_message = "請輸入日誌過濾的名稱." is_duplicate_message = "日誌過濾名稱重複. 請輸入不同的日誌過濾名稱." } # filter_name general = { log_field_label = "日誌欄位" operator_label = "操作者" value_label = "值" unknown_log_field_text = "未知的日誌欄位" is_empty_message = "未輸入值. 請輸入值." concatenate_is_empty_message = "未輸入值. 請為 $param1 關聯欄位輸入值." no_list_item_selected_message = "未選擇項目. 請再清單中選擇一個項目." cannot_copy_string_to_numeric_message = "類型不符. 無琺複製一個字串的日誌欄位到一個數值的日誌欄位中." cannot_copy_float_to_int_message = "類型不符. 無法複製一個浮點數的日誌欄位到一個數字的日誌欄位." cannot_copy_to_same_log_field_message = "無法複製到相同的日誌欄位中. 請選擇兩各不同的日誌欄位." regexp_is_empty_message = "未輸入常規表示法. 請輸入一個常規表示法." invalid_regexp_message = "不合法的常規表示法. 請輸入一個合法的常規表示法." invalid_number_of_braces_in_match_regexp_copy = "常規表示法分枝太少. 請在常規表示法中增加括號部分的數目." duplicate_log_fields_in_match_regexp_copy = "在複製章節中重複日制欄位. 請輸入不同的日誌欄位." invalid_date_time_message = "不合法的 日期/時間. 請輸入合法的 日期/時間. I.e.: 01/Jan/2005 00:00:00" invalid_number_message = "不合法的數字. 請輸入一個整數或浮點數." invalid_integer_message = "不合法的數字. 請輸入一個整數." invalid_number_of_days_message = "不合法的天數. 請輸入一個大於 0 的數." no_if_expression_message = "條件不符. 請新增一個條件." no_then_expression_message = "在 \"然後\" 部分沒有定義動作. 請新增一個動作." no_action_message = "沒有輸入動作. 請新增一個動作." no_boolean_operator_sequence_message = "沒有輸入 boolean 操作因子的順序. 請輸入一個 boolean 操作因子的順序." invalid_boolean_operator_sequence_message = "不合法的 boolean 操作因子順序: $param1" invalid_boolean_operator_sequence_ids_message = "在 boolean 操作因子順序中不合法的辨別者數." invalid_braces_order_in_boolean_operator_sequence_message = "在 boolean 操作因子順序中不合法的分支." invalid_braces_number_in_boolean_operator_sequence_message = "在操作因子順序中打開及關閉的數目不符合." first = "第一" second = "第二" third = "第三" fourth = "第四" } sort_filters = { label = "過濾排序" active_log_filter_text = "有效的日誌過濾, 未輸入名稱" } } # filters format = { allow_newlines_inside_quotes = { label = "在引號內允許新的列" short_description = "Allow newlines (return or line feed) inside quotes, in log lines" long_description = "This controls whether newline characters (returns or line feeds) are permitted inside quotes in log data. When this option is true, and a log line starts a quoted section but does not close it $PRODUCT_NAME will continue with the next line, looking for the closing quote there (or on a later line). The resulting \"line\" of log data will be two or more line long, and some field values may have returns or linefeeds in them. When this option is false (unchecked), $PRODUCT_NAME will assume that unclosed quotes in a line are errors or formatting problems, and will treat the final (unclosed) quoted section as though there were a closing quote at the end of the line. This option should generally be left off, since turning it makes it possible that a small log data corruption can render the entire rest of the file unprocessed. But if your log data does contain entries with newlines inside quotes (as some CSV data does), then you will need to turn this option on." } # allow_newlines_inside_quotes apache_description_string = { label = "Apache 日誌格式描述字串" short_description = "A string which describes the log format, Apache-style" long_description = "This option describes the log format, in Apache log format description string style. This is intended for use as a quick way of using a custom Apache format--you can copy the format string from an Apache configuration file (or another file that uses Apache style format strings), and $PRODUCT_NAME will set up the log fields and format regular expressions for you. This option overrides {=docs_option_link('pre')=}." } # apache_log_format_description_string autodetect_lines = { label = "自動偵測列" short_description = "Number of lines to examine for this log format while auto-detecting" long_description = "This specified the number of lines to compare using {=docs_option_link('are')=} while autodetecting this log format (this option is used in log format plug-ins). For instance, if this is 10, only the first 10 lines will be checked against the regular expression; if it is 100, the first 100 lines will be checked. If any line matches, the format will be considered a match." } # autodetect_lines autodetect_regular_expression = { label = "自動偵測常規表示法" short_description = "A regular expression used to auto-detect the log format" long_description = "This is a regular expression which is used to auto-detect the log format. This option appears in the log format plug-in for a supported log format (plug-ins are in the log_formats $lang_stats.directory of LogAnalysisInfo). A log file matches the format if any of the first few lines of the log file (the number of line is specified by {=docs_option_link('al')=}) match this regular expression. See also {=docs_option_link('pre')=}, which is a similar option serving a different purpose. {=docs_option_link('pre')=} is used during log reading to separate out log fields, and does not affect auto-detection; this option is used only during format auto-detection, and does not affect log reading. See also {=docs_option_link('ae')=}." } # autodetect_regular_expression autodetect_expression = { label = "自動偵測表示法" short_description = "An expression used to auto-detect the log format" long_description = "This is an expression (written in the internal language) which is used to auto-detect the log format. This option appears in the log format plug-in for a supported log format (plug-ins are in the log_formats $lang_stats.directory of LogAnalysisInfo). A log file matches the format if any of the first few lines of the log file (the number of line is specified by {=docs_option_link('al')=}) result in a value of true for this expression (the log line is in volatile.log_data_line). See also {=docs_option_link('pre')=}, which is a similar option serving a different purpose. {=docs_option_link('pre')=} is used during log reading to separate out log fields, and does not affect auto-detection; this option is used only during format auto-detection, and does not affect log reading. See also {=docs_option_link('are')=}." } # autodetect_regular_expression blue_coat_description_string = { label = "Blue Coat 日誌格式描述字串" short_description = "A string which describes the log format, Blue Coat style" long_description = "This option describes the log format, in Blue Coat custom log format description string style. This is intended for use as a quick way of using a custom Blue Coat format--you can copy the format string from the Blue Coat configuration interface, and $PRODUCT_NAME will set up the log fields and format regular expressions for you. This option overrides {=docs_option_link('pre')=}." } # log_format_description_string common_log_format = { label = "格式是一般的日誌格式" short_description = "Log format is similar to Common Log Format" long_description = "This option should be set when the log format is a Common Log Format (CLF), one of a collection of similar log formats which, among other attributes, have the date/time field in brackets, and the user field right before the bracketed date/time field. This option turns on a special work-around which is necessary for certain CLF files where the usernames contain spaces. Because CLF does not quote the username field, spaces in the username field can cause the rest of the fields to be offset, causing strange results. This option causes the field before the date/time field to be combined with any apparently separate fields, until a left-square-bracket ([) is found. This effectively allows the username field to contain spaces in CLF format. This option should be left off for any non-CLF log formats." } # common_log_format date_format = { label = "日期格式" short_description = "Format of dates in the log data" long_description = "This controls the expected format of date fields in the log data. Possible formats are:
auto; This handles a range of date formats automatically. Four-digit integers are treated as years, and one-or-two digit integers are treated as months or days (months are assumed to preceded days). This can be used in many cases where the exact date format is not known in advance. However, it does not support day-before-month dates.
mm/dd/yy; example: 04/21/00.
mm/dd/yyyy; example: 04/21/2000
dd/mm/yyyy; example: 21/04/2000
dd/mm/yy; example: 21/04/00.
ddmmmyy; example: 21Apr00.
dd/mmm/yy; example: 21/Apr/00.
dmmmyyyy; example: 21Apr2000, 4Dec1998.
dd/mmm/yyyy; example: 21/Apr/2000.
mmm/dd/yyyy; example: Apr/21/2000.
mmmmm/dd/yyyy; example: April/21/2000, \"December 21, 2002\", \"January 5 2001\" (any dividers allowed).
yyyy/mmm/dd; example: 2000/Apr/21.
m/d/yy; same as mm/dd/yy, but leading zeros in month and day may be omitted; examples: 4/21/00, 12/4/98, 11/23/02.
m/d/y; same as mm/dd/yy, but leading zeros in month, day, and year may be omitted; examples: 4/21/0, 12/4/98, 11/23/2.
d/m/y; same as dd/mm/yy, but leading zeros in month, day, and year may be omitted; examples: 21/4/0, 4/12/98, 23/11/2.
m/d/yyyy; same as mm/dd/yyyy, but leading zeros in month and day may be omitted; examples: 4/21/2000, 12/4/1998, 11/23/2002.
d/m/yyyy; same as dd/mm/yyyy, but leading zeros in month and day may be omitted; examples: 21/4/2000, 4/12/1998, 23/11/2002.
d/m/yy; same as dd/mm/yy, but leading zeros in month and day may be omitted; examples: 21/4/00, 4/12/98, 23/11/02.
mmdd; example: 0421; year is assumed to be 2002.
mm/dd; example: 04/21; year is assumed to be 2002.
mmm dd; example: Apr 21; year is assumed to be 2002.
dd/mmm/yyyy:hh:mm:ss; example: 21/Apr/1998:08:12:45; colon between date and time may be a space instead.
mm/dd/yyyy hh:mm:ss; example: 04/21/1998 08:12:45.
mmm dd hh:mm:ss yyyy; example: Apr 21 08:12:45 1998. Optionally, a time zone can be specified before the year; i.e. Apr 03 15:57:15 PST 2002.
yyyy-mm-dd; example: 1998-04-21.
yyyy/mm/dd; example: 1998/04/21.
yyyy/m/d; example: 1998/4/21.
yyyymmdd; example: 19980421.
yyyymmddhhmmss; example: 19980421081245.
yymmdd-hhmmss; example: 980421-081245.
m/d/yy h:mm; example: 4/21/98 8:12.
seconds_since_jan1_1970; the number of seconds since January 1, 1970, possibly with a decimal point; example: 887395356.086578.
TAI64N; TAI64N format; example @400000003c675d4000fb2ebc.
auto; automatic detection of date. Currently this supports only formats where the year is four digits or is two-digits and comes last, and the month is three-letter English or is numerical and comes before the day.
" } # date_format default_log_date_year = { label = "預設的日誌格式的年" short_description = "The year to use (e.g. 2004) if the date format in the log data has no year information" long_description = "This option is used if the log date format ({=docs_option_link('df')=}) is one of the few formats which does not include year information. $PRODUCT_NAME will use this option's value as the year. For instance, if the date in the log is \"May 7\" and this option's value is 2004, then $PRODUCT_NAME will assume that the log entry is for May 7, 2004. The value of this option should be a four-digit integer between 1970 and 2030, or 'thisyear' --if the value of this option is 'thisyear' (without quotes), $PRODUCT_NAME will fill in the current year (the year the log data is processed in) as the year." } # default_log_date_year field_separator = { label = "日誌欄位區分者" short_description = "The character or string that separates one log field from the next" long_description = "This specifies the character or string which separates one log field from another in a log entry. For instance, if this is \",\" then log fields are comma-separated; if it is \"==--==\", then the fields are separate from each other by ==--==. This option only affects index/subindex style parsing of log data-- it does not affect parsing if {=docs_option_link('powf')=} is true or if {=docs_option_link('pre')=} is specified." } # field_separator format_label = { label = "日誌資料格式" short_description = "在日誌資料的格式" long_description = "This specifies the name of the log format of the log data. When this appears in a log format description file, it defines the name of the format being described. When this appears in a profile, it has no effect other than providing the name of the log format plug-in used to create the profile. $PRODUCT_NAME sets this option a new profile is create." } # format_label global_date_regular_expression = { label = "通用的日期常規表示法" short_description = "A regular expression which, if matched in the log data, determines the date for all subsequent entries" long_description = "This option is a regular expression (see {=docs_chapter_link('regexp')=}) which is used to extract a \"global date\" from log data. A global date is a date that appears in log data, usually in the header, and specifies the date for all subsequent log entries. Usually, this is used when the log entries do not contain date information at all, but if they do, this overrides them. When this option is not empty, every line of the log file is checked against this regular expression, and if it matches, the parenthesized section is remembered as the \"global date\". From then on, or until another global date line is found, the date field of any accepted log entry is replaced by the global date value. If this option is empty, it is not used." } # global_date_regular_expression global_date_filename_regular_expression = { label = "通用的日期檔名常規表示法" short_description = "A regular expression which, if matched in the log filename, determines the date for all entries in that log file" long_description = "This option is a regular expression (see {=docs_chapter_link('regexp')=}) which is used to extract a \"global date\" from the name of the log file. A global date is a date that applies to all log appears in a file. Usually, this is used when the log entries do not contain date information at all, but if they do, this overrides them. When this option is not empty, the filename of every log processed is checked against this regular expression, and if it matches, the parenthesized section is remembered as the \"global date\". From then on, or until another global date filename is found, the date field of any accepted log entry is replaced by the global date value. If this option is empty, it is not used." } # global_date_filename_regular_expression ignore_format_lines = { label = "忽略規格列" short_description = "Ignore format lines in the log data" long_description = "This controls whether $PRODUCT_NAME ignores format lines in the log data. Format lines are lines starting with #Format, format=, or !!LOG_FORMAT, which appear in the log data, usually in a header, and describe the format of the log data on the following lines. Generally, you want to leave this option off, so $PRODUCT_NAME will understand log format changes if they occur in the middle of the log data. However, if you have defined custom log fields, you need to turn this on, or the field changes will be lost when format lines are encountered." } # ignore_format_lines ignore_quotes = { label = "忽略引號" short_description = "Ignore quotes in log data" long_description = "This controls whether quotes (double or single) should be treated specially in log data. If this option is checked (false), quotes are treated the same as any other character. If this option is unchecked, quotes are treated specially; a quoted value containing a field divider will be treated as a single field value-- the quotes will override the field divider, and prevent it from marking the end of the field. See also {=docs_option_link('tbaq')=}." } # ignore_quotes parse_only_with_filters = { label = "僅使用日誌過濾來分析日誌資料" short_description = "Use only the parsing filters to parse the log (and not the log format regexp, index/subindex, etc.)" long_description = "This controls whether the log format regular expression ({=docs_option_link('pre')=}) option and the index/subindex settings of the log fields have any effect. This option is set in the log format plug-in to determine what type of parsing is used, and it should generally not be changed. When this is false, the ({=docs_option_link('pre')=}) option will be used to parse the log, or index/subindex options will be used if the ({=docs_option_link('pre')=}) option is empty. When this is true, only the log parsing filters (log.parsing_filters in the profile) will be used to parse the log data." } # parse_only_with_filters parsing_regular_expression = { label = "日誌資料格式常規表示法" short_description = "A regular expression describing the log format" long_description = "This is a regular expression which specifies the log format. You only need to change this option if you are creating your own log file format. It is a regular expression (see {=docs_chapter_link('regexp')=}) which matches an entire log entry (one line of the log), and contains a parenthesized substring for each log field. For each line that matches the regular expressions, the part of the line which matches the first substring will become log field 1, the part of the line matching the second substring will be log field 2, etc. Log lines which do not match this expression will be rejectedFor example, consider the following regular expression:
^(\[^ ]*) (\[^ ]*) (\[^ ]*) (\[^ ]*)\\$Each parenthesized part matches any sequence not containing a space, and the four parts must be separated by spaces. The leading ^ and trailing \\$ ensure that the whole line must be matched. This expression matches a line which contains four fields, separated by spaces, where the fields do not contain spaces. The first field will be put into the first log field, the second into the second log field, the third into the third log field, and the fourth into the fourth log field.
Some log formats cannot be processed using a single regular expression, either because they have peculiar field layout, or because their fields span several lines, or for some other reason. Usually it is still possible to process the log files with $PRODUCT_NAME, but the log format description file will need to include log parsing filters with more complicated parsing logic. For one example of that, see the Raptor file in the log_formats sub$lang_stats.directory of the LogAnalysisInfo $(lang_stats.directory)." } # parsing_regular_expression time_format = { label = "時間格式" short_description = "Format of times in the log data" long_description = "This controls the expected format of time fields in the log data. Possible formats are:
auto; This handles most time formats automatically. Times are assumed to be in H:M:S format, where H is the hours, M is the minutes, and S is the seconds; any of them can be one or two digits. The dividers can be any non-numerical values-- they don't have to be colons. If PM appears after the time, it is assumed to be a 12-hour PM time. This can be used in many cases where the exact date format is not known in advance.
hh:mm:ss; example: 18:04:23.
h:mm:ss; same as hh:mm:ss except that the leading 0 on the hour may be omitted example: 8:12:45.
h:m:s; same as hh:mm:ss except that the leading 0 on the hour, minute, or second may be omitted example: 8:12:45, 12:8:15, 1:5:9.
dd/mmm/yyyy:hh:mm:ss; example: 21/Apr/1998:08:12:45.
mmm dd hh:mm:ss yyyy; example: Apr 21 08:12:45 1998.
h:mm:ss AM/PM; examples: 9:32:45 AM, 12:34:22 PM.
h:mm:ss GMT; examples: 9:32:45 GMT, 18:34:22 GMT.
h:mm; example: 18:04, 9:32.
hhmm; example: 1804.
hhmmss; example: 180423.
yyyymmddhhmmss; example: 19980421081245.
yymmdd-hhmmss; example: 980421-081245.
m/d/yy h:mm; example: 4/21/98 8:12.
seconds_since_jan1_1970; the number of seconds since January 1, 1970, possibly with a decimal point; example: 887395356.086578.
TAI64N; TAI64N format; example @400000003c675d4000fb2ebc.
" } # parsing_filters processing = { label = "常用程式" edit_button = "編輯常用程式" edit_form_title = "編輯常用程式" option_group = true allow_empty_log_source = { label = "允許空白的日誌來源" short_description = "True if $PRODUCT_NAME should allow databases to be created from log sources which contain no data" long_description = "This option controls whether $PRODUCT_NAME complains if the log source is empty when the database is build or rebuild. If this option is false, $PRODUCT_NAME will generate an error if there is no data in the log source during a (re)build. If this is true, $PRODUCT_NAME will not complain, but will just create a database containing no data. An empty log source is often a sign of an error in the log source, so it is usually best to leave this option off. But in a multi-user environment, some sites may have no log data at all, and in that case, this can be turned on to allow for error-free rebuilds of all databases. $PRODUCT_NAME never generates an error if there is no (new) log data during a database update; this affects only \"from scratch\" (re)builds." } # allow_empty_log_source date_offset = { label = "日期補償" unit_label = "小時" invalid_number_message = "不合法的資料偏移值. 請輸入一個數字 (浮點數) 在 -23 及 23 或是在 -23.9 及 23.9 小時." short_description = "The number of hours to add to each date in the log file" long_description = "This specifies the number of hours to add to the dates in the log file. A positive value causes that many hours to be added to every date in the log as it is read, and a negative value causes hours to be subtracted. For instance, if your log data is in GMT (as some format are, including some W3C-based formats), but your time zone is GMT-8 (i.e. Pacific Standard Time), then you should enter -8 here. A value of zero leaves the dates unchanged. Fractional hours are allowed; e.g. 9.5." } # date_offset log_entry_pool_size = { label = "日誌項目暫存區大小" invalid_number_message = "不合法的日誌項目暫存大小的值. 請輸入一個數字 (整數)大於或等於 $param1." short_description = "The number of log entries $PRODUCT_NAME can work on simultaneously" long_description = "This controls the number of log entries $PRODUCT_NAME can work on at a time. Increasing this value may improve performance of DNS lookup. However, it will also use more memory." } # log_entry_pool_size look_up_location_with_geoip = { label = "使用 GeoIP 來查詢位置" short_description = "" long_description = "" } # look_up_location_with_geoip read_block_size = { label = "日誌讀取區塊大小" invalid_number_message = "Invalid log reading block size value. Please define a number (integer) greater or equal $param1." short_description = "Size in bytes of the blocks which are read from the log" long_description = "This controls the size in bytes of the blocks which are read from the log data. $PRODUCT_NAME reads the log data in chunks, processing each chunk completely before continuing to the next. Larger settings will reduce the number of disk accesses, potentially speeding processing time, but will also require the specified number of bytes of memory." } # read_block_size skip_processed_filenames_on_update = { label = "更新時忽略已處理的檔案" short_description = "Skip files which have already been processed (judging by their filenames) during a database update or add operation" long_description = "This controls whether $PRODUCT_NAME uses the filenames of log files to determine if the files have already been added to the database. If this option is checked (true), then $PRODUCT_NAME will skip over any log files in the log source if it has already added a file with that name to the database. This can speed processing, especially when using FTP, because $PRODUCT_NAME does not have to download or process the file data and use its more sophisticated checking mechanism to see if the data has been processed. However, it will not work properly if you have log files in your log source which are growing from update to update, or if you have log files with the same name which contain different data. If this option is off, $PRODUCT_NAME will handle those situations correctly, but it will have to download and examine the log data of all files to do it." } # skip_processed_filenames_on_update skip_most_recent_file = { label = "忽略多數的近期檔案" short_description = "" long_description = "" } # skip_most_recent_file threads = { label = "日誌處理線程" invalid_number_message = "不合法的日誌處理線程值. 請輸入一個數字 (整數)大於或等於 $param1." short_description = "The number of simultaneous threads to use to process log data" long_description = "This specifies the number of threads of execution to use to process log data. The threads will execute simultaneously, each processing a portion of the log data, and at the end of processing, their results will be merged into the main database. On systems with multiple processors, using one thread per processor can result in a significant speedup of using a single thread." } # threads thread_data_block_size = { label = "線程資料區塊大小" invalid_number_message = "不合法的線程資料大小值. 請輸入一個數字 (整數)大於或等於 $param1." short_description = "" long_description = "" } # thread_data_block_size convert_log_data_charset = { label = "轉換日誌資料字元集" label_2 = "將日誌資料字元集由 \"$param1\" 轉換為 \"$param2\"" short_description = "" long_description = "" } # convert_log_data_charset convert_log_data_from_charset = { label = "由字元集轉換日誌資料" short_description = "The charset to convert from, when converting input log data" long_description = "If this option is not empty, it will be used together with {=docs_option_link('cldtc')=} to convert the log data from the log source to a different charset from the one it is currently in. This option specifies the charset the log data is in to begin with; {=docs_option_link('cetc')=} specifies the charset that the log data will be in after conversion; e.g. the charset that will be seen by log filters and in the database" } # convert_log_data_from_charset convert_log_data_to_charset = { label = "轉換日誌資料到字元集" short_description = "The charset to convert to, when converting input log data" long_description = "If this option is not empty, it will be used together with {=docs_option_link('cldfc')=} to convert the log data from the log source to a different charset from the one it is currently in. {=docs_option_link('cldfc')=} specifies the charset the log data is in to begin with; this option specifies the charset that the log data will be in after conversion; e.g. the charset that will be seen by log filters and in the database" } # convert_log_data_from_charset } # processing source = { label = "日誌來源" short_description = "The location(s) of the log data to analyze" long_description = "This specifies the log data to analyze. Several different types of log sources are supported, including:
You can specify multiple log sources by listing one log source (for instance, one pathname, or URL, or one of the other types of log sources listed above) in separate subnodes of log.source. $PRODUCT_NAME will process the log sources in the order they are listed in log.source.
" new_form_title = "新日誌來源" edit_form_title = "編輯日誌來源" new_button = "新日誌來源" show_matching_files_button = "顯示對應的檔案" confirm_delete_message = "你確定要刪除該日誌來源 \"$param1\" 嗎?" delete_info = "刪除日誌來源, 請稍等." save_info = "儲存日誌來源, 請稍等." type = { label = "日誌來源類型" local = { label = "本機磁碟" pathname = { label = "路徑名稱" is_empty_message = "請輸入路徑名稱." } # pathname } # local ftp = { label = "FTP" hostname = { label = "主機名稱" is_empty_message = "請輸入主機名稱." } # hostname username = { label = "使用者名稱" is_empty_message = "請輸入使用者名稱." } # username password = { label = "密碼" is_empty_message = "請輸入密碼." } # password pathname = { label = "路徑名稱" is_empty_message = "請輸入路徑名稱." } # pathname use_passive = { label = "轉換時採被動模式" } } # ftp http = { label = "HTTP" hostname = { label = "主機名稱" is_empty_message = "請輸入主機名稱." } # hostname pathname = { label = "路徑名稱" is_empty_message = "請輸入路徑名稱." } # pathname } # http command = { label = "命令" command = { label = "命令" is_empty_message = "請輸入指令." } # command } # command } # type process_log_source_subdirectories = { label = "處理 次$lang_stats.directories (僅 $lang_stats.directories 位置)" short_description = "Whether to process log files in sub$lang_stats.directories of the specified log source $lang_stats.directory" long_description = "This controls whether $PRODUCT_NAME scans local sub$lang_stats.directories while processing a log source. If this option is false, only files directly inside the specified $lang_stats.directory will be processed; files in sub$lang_stats.directories will not be processed. If this option is true, all files in the $lang_stats.directory will be processed, even if they are contained in $lang_stats.directories of the specified $lang_stats.directory, or in $lang_stats.directories of those, etc.
IMPORTANT: This option only works with local $lang_stats.directories-- it does not work with FTP URLs. If you need to process several $lang_stats.directories on an FTP server, you need to enter each $lang_stats.directory separately, as a separate URL." } # process_log_source_subdirectories use_regular_expressions_for_log_source = { label = "典型的常規表示法" short_description = "The pattern specified to choose files for the log source is a regular expression" long_description = "This option controls whether the pattern specified in the filename section of the {=docs_option_link('lsu')=} option is a regular expression or a wildcard pattern. When this option is true, the pattern is treated as a full regular expression, and any regular expression constructions can be used (see {=docs_chapter_link('regexp')=}). When this is false, the pattern is treated as a wildcard expression, only the * and ? wildcards may be used. Only log files which are in the $lang_stats.directory specified by the {=docs_option_link('lsu')=}, or in a sub$lang_stats.directory of it, and whose names match this regular expression, will be processed." } # use_regular_expressions_for_log_source } # source } # log summary = { label = "設定檔摘要" profile = { } # profile } network = { dns_lookup = { label = "DNS 查詢" edit_button = "編輯 DNS 查詢" edit_form_title = "編輯 DNS 查詢" } # dns_lookup actions_email_address = { label = "動作的電子郵件位址" short_description = "The address(es) that $PRODUCT_NAME should send email to whenever an action completes (e.g. the database is built)" long_description = "This specifies the address or addresses $PRODUCT_NAME should send email to whenever an action occurs, for instance when the database finishes rebuilding, updating, expiring, or when HTML files are done being generated. If this option is non-empty, $PRODUCT_NAME will send a brief description of what it just finished doing, using the SMTP server specified by {=docs_option_link('ss')=}. Multiple recipients may be specified with commas, e.g. \"user1@mydomain.com,user2@mydomain.com,user3@mydomain.com\". If this option is empty, $PRODUCT_NAME will not send email." } # actions_email_address dns_server = { label = "DNS 伺服器" short_description = "The hostname or IP address of the DNS server to use to look up IP addresses in the log data" long_description = "This specifies the DNS server to use when looking up IP addresses in the log data (when {=docs_option_link('luin')=} is true). This can be either a hostname or an IP address of the DNS server. If this option is empty, and $PRODUCT_NAME is running on a UNIX-type operating system, it will use the system's default primary DNS server. On all other platforms (including Windows), this option must be set when {=docs_option_link('luin')=} is true." } # dns_server dns_timeout = { label = "DNS 逾時 (秒)" short_description = "Amount of time to wait for DNS response before timing out" long_description = "This option controls the amount of time $PRODUCT_NAME waits for a response from a DNS (domain nameserver) when attempting to look up an IP number (see {=docs_option_link('luin')=}) during log processing. The value is in seconds; so a value of 30 means that $PRODUCT_NAME will give up after waiting 30 seconds for a response. Setting this to a low value may speed up your log processing, but fewer of your IP numbers will be resolved successfully." is_invalid_value_message = "Invalid DNS timeout value. Please define a number greater or equal $param1." } # dns_timeout ip_numbers_cache_file = { label = "IP 位址暫存檔案" short_description = "The file in which to cache IP numbers after they're looked up" long_description = "This specifies a file where $PRODUCT_NAME should store a database of IP numbers it has looked up in the past (see {=docs_option_link('luin')=}). When $PRODUCT_NAME looks up an IP number, it will look in this cache first, to see if it has already found the hostname for that IP number (or if it has already determined that the hostname cannot be found). If it finds the IP number in the cache stored in this file, it will use that hostname, rather than performing the reverse DNS lookup again. This can greatly improve the speed of converting IP numbers to hostnames, especially when the same log is analyzed again.
This option can be either a full pathname of a file, in which case that file will be used, or a single filename, in which case the file will be created inside the LogAnalysisInfo $(lang_stats.directory)." is_empty_message = "請輸入 IP 位址暫存檔案或使用預設值." } # ip_numbers_cache_file look_up_ip_numbers = { label = "使用網域名稱伺服器 (DNS) 來查詢 IP 位址" short_description = "Whether to look up IP numbers using a domain nameserver (DNS), to try to compute their hostnames" long_description = "When this is true (checked), $PRODUCT_NAME attempts to look up the full domain name of IPs which appear in the log as IP numbers (\"reverse DNS lookup\"), using the DNS server specified by the {=docs_option_link('ds')=} and {=docs_option_link('sds')=} options. The lookup is performed as the log data is read, so if you change this option, you will need to rebuild the database to see the effects. Looking up the IP numbers provides a more human-readable format for the IP hosts, but requires a network access as frequently as once per line, so it can take much longer than leaving them as IP numbers. There are several ways to improve the performance of DNS lookup. The most important is to make sure $PRODUCT_NAME has a fast network connection to your DNS server; you can usually do this by running $PRODUCT_NAME on your web server (as a CGI program, if necessary), rather than on your desktop system. It may also be faster to configure the logging server to perform the domain name lookups, rather than having $PRODUCT_NAME do it. See also {=docs_option_link('nluin')=} and {=docs_option_link('luinbf')=}." } # look_up_ip_numbers look_up_ip_numbers_before_filtering = { label = "過濾後查詢 IP 位址" short_description = "Whether to look up IP numbers before filtering (rather than after)." long_description = " NOTE: As of $PRODUCT_NAME 6.1 (which is when we added our fast asynchronous DNS lookup algorithm), this option has no effect. In a later version, we may add it back. Here's what it used to do:
When this is true (checked), $PRODUCT_NAME performs IP number lookup (reverse DNS) before running the filters (see {=docs_chapter_link('filters')=} and {=docs_option_link('luin')=}). When this is false (unchecked), $PRODUCT_NAME performs IP number lookup after running the filters. Note that this does not determine whether $PRODUCT_NAME performs DNS ({=docs_option_link('luin')=} does that); it determines when. Setting this to true allows filtering based on hostnames, even when the hosts are in IP number format in the log data. Setting this to false saves time, by looking up only those IP numbers which correspond to entries which are accepted by the filters." } # look_up_ip_numbers_before_filtering maximum_simultaneous_dns_lookups = { label = "同時最大量的 DNS 查詢" short_description = "The maximum number of IP addresses that $PRODUCT_NAME will attempt to lookup at the same time" long_description = "This specifies the maximum number of IP addresses that will be looked up simultaneously. Setting this to a high value may increase DNS lookup performance, but if you set it too high, your may exceed operating system limitations, and the log processing may fail." is_invalid_value_message = "Invalid Maximum Simultaneous DNS Lookups value. Please define a number between $param1 and $param2." } # maximum_simultaneous_dns_lookups # report_email_address = { # label = "報表電子郵件位址" # short_description = "The address(es) that $PRODUCT_NAME should send statistics reports to" # long_description = "This specifies the address(es) $PRODUCT_NAME should send email statistics reports to, when the reports are emailed from the web interface, or the Scheduler sends a report, or when a report is sent using the command line. Multiple recipients may be specified with commas, e.g. \"user1@mydomain.com,user2@mydomain.com,user3@mydomain.com\". One report will be emailed, with HTML formatting and embedded images, to the specified address." # } # report_email_address # report_email_subject = { # label = "報表郵件主旨" # short_description = "The subject of the report email that is sent" # long_description = "This specifies the subject of the report email (see {=docs_option_link('vea')=})." # } # report_email_subject # report_to_email = { # label = "以郵件報告" # short_description = "The name of the report that $PRODUCT_NAME should send by email" # long_description = "This specifies the name of the report $PRODUCT_NAME should send when it sends a report by email. See {=docs_option_link('vea')=}." # } # report_to_email # return_address = { # label = "退回電子郵件位址" # short_description = "The return email address that $PRODUCT_NAME should use when sending email" # long_description = "This specifies the return address $PRODUCT_NAME should specify when sending email. Unless a valid address is specified here, replies to $PRODUCT_NAME's automatically generated emails will bounce. See also {=docs_option_link('ssh')=}." # } # return_address running_statistics_url = { label = "執行 $PRODUCT_NAME URL" short_description = "The URL of a running version of $PRODUCT_NAME, used to insert live links into HTML email" long_description = "This specifies the URL of a running copy of $(PRODUCT_NAME). The URL may be something like http://www.flowerfire.com:8987/if $PRODUCT_NAME is running in web server mode, or it may be http://www.domainname.com/cgi-bin/$PRODUCT_EXECUTABLE_DOCS if $PRODUCT_NAME is running in CGI mode. The URL is used to embed \"live\" links in HTML email; for instance, it allows your HTML email to include tables of items which, when clicked, open a web browser and display more information on that item (as they would if the table were in a normal live $PRODUCT_NAME report). If this option is empty, links will not appear in HTML email." } # running_statistics_url secondary_dns_server = { label = "第二的 DNS 伺服器" short_description = "The hostname or IP address of the DNS server to use to look up IP addresses in the log data, if the primary DNS server fails" long_description = "This specifies a secondary DNS server to use when looking up IP addresses in the log data (when {=docs_option_link('luin')=} is true). This can be either a hostname or an IP address of the DNS server. If this option is empty, and $PRODUCT_NAME is running on a UNIX-type operating system, it will use the system's default secondary DNS server. On all other platforms (including Windows), this option must be set when {=docs_option_link('luin')=} is true. This is used only if the primary DNS server ({=docs_option_link('ds')=}) does not respond." } # secondary_dns_server # smtp_server_hostname = { # label = "SMTP 伺服器主機名稱" # short_description = "The hostname of an SMTP (sendmail) server $PRODUCT_NAME should use when sending email" # long_description = "This specifies the hostname of an SMTP server $PRODUCT_NAME should use when sending email. This can either be just the hostname, in which case the default SMTP port of 25 is used, or it can be \"hostname:port\" (i.e. the hostname, followed by a colon, followed by the port number), in which case hostname is used as the SMTP hostname, and port is used as the SMTP port." # } # smtp_server_hostname support_email_address = { label = "支持者電子郵件位址" short_description = "The email address where bug and error reports should be sent" long_description = "This option specifies the email address where bug reports should be sent when a $PRODUCT_NAME user clicks the \"Report It\" button on an error message. If this is blank, it will go to the software vendor's support address ($SUPPORT_EMAIL). That's fine for some situations, especially if the reporting user is the $PRODUCT_NAME administrator, but for ISPs and other multi-client and multi-user installations, most of the errors will be configuration issues that the software vendor can't do anything about, and that the reporting user can't fix (because they don't have administrative access). For multi-client licensing setups, This should be set to the address of the $PRODUCT_NAME administrator, who can fix the problems as they occur.
" } # support_email_address use_tcp_for_dns = { label = "使用 TCP 與 DNS 伺服器溝通" short_description = "True if $PRODUCT_NAME should use TCP (rather than the more standard UDP) to communicate with DNS servers" long_description = "This specifies whether $PRODUCT_NAME should use the TCP protocol when communicating with DNS servers. DNS servers more commonly communicate using UDP, and UDP is generally faster, but in some cases it may be preferably to use TCP instead (for instance, if your DNS server is accessible only by TCP due to its configuration or network location)." } # use_tcp_for_dns } # network output = { number_thousands_divider = { label = "千分位" short_description = "A divider to separate thousands in displayed numbers" long_description = "This option specifies the value to separate thousands in displayed number. For instance, if this option is empty, a number may be displayed as 123456789. If the value of this option is a comma (,), the number will be 123,456,789. If it's a period (.), the number will be 123,456,789. If it's a space, the number will be 123 456 789. This can be used to localize number divisions. If this option is empty the value of lang_stats.number.thousands_divider will be used; i.e. leave this value empty to use the current language's default divider." } # number_thousands_divider progress_page_interval = { label = "進行頁面秒數" short_description = "The number of seconds between progress pages" long_description = "
This controls the number of seconds which elapse between the progress pages or command-line progress indicators, which appear when the progress display is enabled (see {=docs_option_link('v')=}).
The \"progress\" (p) option (see {=docs_option_link('v')=}) controls whether a progress indicator will appear during long operations (like reading a large log file). When $PRODUCT_NAME is used from the command line, this option causes it to show a single-line text progress indicator. There isn't enough room on a single 80-character line to show all the information that's shown on a graphical progress page, but $PRODUCT_NAME shows the most important parts:
G:[@@@@@@@@@@ ]47% 643779e E00:20:42 R00:20:01 25M/1976k
The first character (G in this case) is the first letter of the full description of the current operation, as it would appear in the graphical view. For instance, in this case the G stands for \"Getting data by FTP.\" Other common operations are \"(R)eading data\" (from a local file or command) and \"(E)rasing database.\"
The section in brackets is a progress meter, which gradually fills as the task progresses, and is completely full at the end. The percentage after it is the percentage of to task that is now complete. If $PRODUCT_NAME cannot determine the length of the task (for instance, if it's processing gzipped log data, or bzipped log data, or log data from a command), then it will not show anything in the bar area, and it will show ??% as the percentage.
The next section (643779e above) is the number of log entries that $PRODUCT_NAME has processed.
The next section (E00:20:42 above) is the time elapsed since processing began, in hours:minutes:seconds format. That is followed by the estimated time remaining, (R00:20:01 above), in the same format. If $PRODUCT_NAME cannot determine the length of the task, the time remaining will be R??:??:??.
The last two numbers (25M/1976k above) are the memory used by the database (25M in this case), and the disk space used by the database (1976k in this case). Note that this is just the memory used by this database; $PRODUCT_NAME itself will be using additional memory for other purposes, so the total $PRODUCT_NAME memory usage will be higher than this number.
" } # progress_page_interval convert_export_charset = { label = "轉換輸出字元集" label_2 = "把 \"$param1\" 的輸出字元集轉換為 \"$param2\"" short_description = "" long_description = "" } # convert_export_charset convert_export_from_charset = { label = "把字元集輸出轉換為" short_description = "The charset to convert from, when converting a final exported CSV file" long_description = "If this option is not empty, it will be used together with {=docs_option_link('cetc')=} to convert the result of a CSV export to a different charset. This option specifies the charset the export is in to begin with; {=docs_option_link('cetc')=} specifies the charset that the export text will be in when it is displayed" } # convert_export_from_charset convert_export_to_charset = { label = "把輸出字元集轉換為" short_description = "The charset to convert to, when converting a final exported CSV file" long_description = "If this option is not empty, it will be used together with {=docs_option_link('cefc')=} to convert the result of a CSV export to a different charset. {=docs_option_link('cefc')=} specifies the charset the export is in to begin with; this option specifies the charset that the export text will be in when it is displayed" } # convert_export_to_charset } # output security = { allow_viewers_to_rebuild = { label = "允許觀看者重建/更新資料庫" short_description = "Allow all statistics viewers to rebuild/update the database" long_description = "When this option is checked (true), anyone viewing the statistics for the profile an rebuild or update the database, using the rebuild/update links in the reports. When this options is unchecked (false), only administrators will be able to use those links-- the links will not be visible for non-administrative viewers." } # allow_viewers_to_rebuild } # security statistics = { miscellaneous = { cache_reports = { label = "暫存報表" short_description = "True if reports should be cached for faster repeat display" long_description = "This controls whether reports are cached on disk. When this option is true, reports are saved on the disk, so if the exact same report is requested again later, it can be quickly generated without requiring database access or report generation. When this option is false, reports are regenerated every time they are viewed. Caching uses additional disk space, so it may be useful to turn this off if disk space is at a premium." } # cache_reports entry_name = { label = "日誌項目名稱" short_description = "The word to use to describe a log entry" long_description = "This option specifies the word used to refer to a single log entry. For web log, for instance, this may be \"hit\", or for email logs it may be \"message\". This option is set in the log format plug-in, and generally does not need to be changed unless you are creating a new plug-in. This will appear in various places in statistics pages." } # entry_name first_weekday = { label = "第一個工作日" short_description = "The first weekday of the week (0=Sunday, 1=Monday, ...)" long_description = "This controls the weekday that is considered the first day of the week. The first weekday will be the first column in calendar months and it will be the first row in weekday tables. Use 0 for Sunday, 1 for Monday, 2 for Tuesday, 3 for Wednesday, 4 for Thursday, 5 for Friday, and 6 for Saturday." } # first_weekday hidden_views_url = { label = "隱藏檢視的 URL" short_description = "The URL to link view buttons to when the views are not visible" long_description = "This controls the page that view buttons link to when the associated view is hidden. If this option is empty, the view button itself will also be hidden. Otherwise, this view button will be dimmed, and clicking the button will take you to the URL specified by this option." } # hidden_views_url marked_weekday = { label = "標記的工作日" short_description = "The weekday which appears marked in calendar months displays (0=Sunday, 1=Monday, ...)" long_description = "This controls the weekday which appears in a different color in calendar months displays. The marked weekday will be displayed in a different color than the other weekdays, i.e. weekday = 0 will display the \"S\" for Sunday in red color. Use 0 for Sunday, 1 for Monday, 2 for Tuesday, 3 for Wednesday, 4 for Thursday, 5 for Friday, and 6 for Saturday." } # marked_weekday maximum_session_duration = { label = "最大量的區間時期 (秒)" short_description = "The maximum duration of a session; longer sessions are discarded from the session information" long_description = "This controls the maximum length of a session in the session information. This affects the display of session-based statistics reports like the \"sessions overview\", and the entry/exit page views. Sessions longer than the value specified will be ignored, and will not appear in the session information. This option is useful because some large ISPs (e.g. AOL) and other large companies use web caches that effectively make all hits from their customers to appear to be coming from one or just a few computers. When many people are using these caches at the same time, this can result in the intermixing of several true sessions in a single apparent session, resulting in incorrect session information. By discarding long sessions, which are probably the result of these caches, this problem is reduced. Also, long visits are often the result of spider visits, which are usually not useful in session reporting. The problem with caches can be eliminated entirely by configuring your web server to track \"true\" sessions using cookies, and then configuring $PRODUCT_NAME to use the cookie value (rather than the hostname field) as the visitor id. Setting this option to 0 removes any limit on session duration, so all sessions will be included." } # maximum_session_duration page_footer = { label = "表尾文字" short_description = "HTML code to place at the bottom of statistics pages" long_description = "This specifies the HTML text to appear at the bottom of statistics pages. If both this and {=docs_option_link('pff')=} are specified, both will appear, and this will appear second. See also {=docs_option_link('pff')=}, {=docs_option_link('ph')=}, {=docs_option_link('phf')=}, and {=docs_option_link('pfc')=}." } # page_footer page_footer_file = { label = "表尾檔" short_description = "An HTML file whose contents go at the bottom of statistics pages" long_description = "This specifies a file containing HTML text to appear at the bottom of statistics pages. If both this and {=docs_option_link('pf')=} are specified, both will appear, and this will appear first. See also {=docs_option_link('pf')=}, {=docs_option_link('ph')=}, {=docs_option_link('phf')=}, and {=docs_option_link('pfc')=}." } # page_footer_file page_frame_command = { label = "頁面結構指令" short_description = "A command which is executed to generate HTML to frame $PRODUCT_NAME's statistics" long_description = "This option specifies a command-line program to run (UNIX and Windows only) to generate an HTML \"frame\" into which $PRODUCT_NAME's statistics page output should be inserted. This is useful for integrating $PRODUCT_NAME's output with the look and feel of a web site. The program should generate this HTML to its standard output stream. The frame should be a complete HTML document, starting with <HTML> and ending with </HTML>. Somewhere in the document, the text [[[[STATISTICS]]]] should appear. $PRODUCT_NAME will generate statistics pages by replacing that text with the statistics information, and leaving the rest of the page unchanged. See also {=docs_option_link('pf')=}, {=docs_option_link('ph')=}, {=docs_option_link('pff')=}, and {=docs_option_link('phf')=}." } # page_frame_command page_header = { label = "表頭文字" short_description = "HTML code to place at the top of statistics pages" long_description = "This specifies the HTML text to appear at the top of statistics pages. If both this and {=docs_option_link('phf')=} are specified, both will appear, and this will appear first. See also {=docs_option_link('phf')=}, {=docs_option_link('pf')=}, {=docs_option_link('pff')=}, and {=docs_option_link('pfc')=}." } # page_header page_header_file = { label = "表頭檔" short_description = "An HTML file whose contents go at the top of statistics pages" long_description = "This specifies a file containing HTML text to appear at the top of statistics pages. If both this and {=docs_option_link('ph')=} are specified, both will appear, and this will appear second. See also {=docs_option_link('ph')=}, {=docs_option_link('pf')=}, {=docs_option_link('pff')=}, and {=docs_option_link('pfc')=}." } # page_header_file server_root = { label = "日誌伺服器的根 URL" short_description = "The root URL of the server being analyzed" long_description = "This specifies the root URL (e.g. http://www.myserver.com/) of the web server which generated the log data. If a server root is specified, $PRODUCT_NAME will generate links, where possible, back to the server; these links will appear as red arrows next to page items in the tables and pie charts in reports. If the server root is not specified, these linked icons will not appear." } # server_root session_timeout = { label = "區間逾時 (秒)" short_description = "The interval after which events from the same user are considered to be part of a new session" long_description = "This controls the amount of time a session can be idle before it is considered complete. This affects the display of session-based statistics reports like the \"sessions overview\", and the entry/exit page views. Sessions are considered ended when a user has not contributed an event in the number of seconds specified here. For instance, if this interval is 3600 (one hour), then if a user does not contribute an event for an hour, the previous events are considered to be a single session, and any subsequent events are considered to be a new session." } # session_timeout show_http_link = { label = "顯示頁面連結" short_description = "Shows table items which starts with \"http://\" as a link." long_description = "This option specifies if table items which starts with \"http://\" should be shown as a link. If this option is enabled all table items which starts with \"http://\" will be shown as a link and will open the page as specified by the table item URL." } # show_http_link user_agent_for_emails = { label = "郵件的使用者代理" short_description = "Specifies the target user agent when sending emails." long_description = "This option specifies the target user agent (web browser) when sending emails. Setting the user agent allows $PRODUCT_NAME to optimally handle line breaking for the target web browser. The user agent can be set to \"msie\" for Microsoft Internet Explorer, \"safari\" for Safari, \"netscape\" for Netscape and Mozilla and \"unknown\" if the user agent (web browser) is not known. Setting the user agent to \"unknown\" will break lines by spaces and by inserting a