https://www.cwiki.us
1. Working with Confluence Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Configuring Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 log4j Logging Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Troubleshooting SQL Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 4 6 6
Copyright © 2014 - 2018, OSSEZ LLC
CWIKI.US - OSSEZ
https://www.cwiki.us
Working with Confluence Logs 中文标题【设置 Confluence 日志】 本页中的内容: Confluence 使用的是 Apache's log4j 日志服务。能够允许管理员通过编辑配置文件来控制日志的表 现和日志输出文件。在系统中有 6 个日志输出级别,请参考 log4j logging levels 页面来获得更多信 息。 如果你请求 Atlassian Support 为你提供支持服务,我们总是会要求你能够提供你 Confluence 应用的 日志输出。要获得这些日志输出的最简单的方法是进入 >基本配置(General Configuration)> 问 题检查和支持工具(Troubleshooting and support tools) 然后根据弹出的提示,创建一个 Support Zip。
找到 Confluence 的 日志文件 找到 Confluence 的 日志配置文件 修改日志文件 的目标位置 修改日志文件 的大小和数量 修改日志级别 指定 Confluence 日 志选项 搜索日志文件 获得已知问题
相关页面: Enabling Detailed SQL Logging Enabling user access logging Generating a Thread Dump Enabling Page Request Profiling
找到 Confluence 的日志文件 这部分内容对 Confluence 的默认日志表现进行描述并且假设你没有对 Confluence 的默认日志配置进行修改。为了统一在不同平台中的日志输 出,Confluence 使用 atlassian-confluence.log 为主要日志,而不使用应用服务器日志。 当你启动 Confluence 的时候,日志实体将会发送日志直到 Confluence 完全初始化完成。任何在服务器控制台中输出的日志也会同时输 出到上面描述的文件中。 当启动完成后,所有的日志将会输出到 <confluence-home>/logs/atlassian-confluence.log。例如: c:/confluence /data/logs/atlassian-confluence.log。 请注入,默认的位置位于 Confluence 的 home 目录中(home directory)而不是在应用服务器的日志目录中的。home 目录的路径可以在 <con fluence-installation>/confluence/WEB-INF/classes/confluence-init.properties 中指定。
找到 Confluence 的日志配置文件 有关 Confluence 和 Synchrony 的日志表现定义在下面的属性文件: <CONFLUENCE-INSTALL>/confluence/WEB-INF/classes/log4j.properties 这个文件是标准的 Logj 配置文件,请参考 Apache log4j documentation 页面中的描述。
修改日志文件的目标位置
P2
Copyright © 2014 - 2018, OSSEZ LLC
CWIKI.US - OSSEZ
https://www.cwiki.us
在 log4j 中,一个输出被定义为 'appender'。希望修改 log 文件的目标,你需要停止 Confluence 然后修改设置 log4j.properties 日志配置 文件的 'Logging Location and Appender' 设置。有关这个文件的路径,请参考上面的说明。 在一个标准的配置文件中,你可以找到下面 2 个 appenders。 com.atlassian.confluence.logging.ConfluenceHomeLogAppender– 这个是默认的日志输出器(appender )在上面描述 得文件中。这个日志输出器有允许下面的设置: MaxFileSize MaxBackupIndex org.apache.log4j.RollingFileAppender– 如果你希望记录日志到不同的位置,取消 RollingFileAppender 行前面的备 注,同时修改下面的日志文件路径。注释掉 ConfluenceHomeLogAppender 行的内容。 Synchrony 日志路径也可以通过同样的方式进行修改。 Confluence 绑定了 log4j 提供的所有功能。有关 log4j 日志输出容器的的定义,请参考log4j documentation 页面中的内容。
修改日志文件的大小和数量 在默认的情况下,Confluence 将会保持 5 个日志文件,每一个日志文件的大小超过 20 MB 的时候将会被重写。 你可以修改默认日志文件的大小和数量,通过编辑 <CONFLUENCE-INSTALL>/confluence/WEB-INF/classes/log4j.properties 文 件中的内容。
log4j.appender.confluencelog.MaxFileSize=20480KB log4j.appender.confluencelog.MaxBackupIndex=5
修改日志级别 请参考 Configuring Logging 页面中的内容来修改 Confluence 中的日志配置文件。
指定 Confluence 日志选项 这里是一些特定的日志配置,你可能在对问题进行调试的时候需要。
在日志中记录数据库使用的 SQL 查询请求 你可能希望增加日志的中的内容,记录 Confluence 系统向数据库中插入数据的时候使用的 SQL 语句。针对一些特定的问题的诊断,这个配置 能够帮你找到你肯能需要的一些信息。 你可以通过下面的 2 种方法启用在你的日志中记录 SQL 的内容: 在系统运行的时候记录 – 请参考上面的指南。 通过日志配置文件 – 请参考这里的Enabling Detailed SQL Logging。
日志用户查看/访问 Confluence 每一个页面的详细信息 你可以配置那些用户访问了你 Confluence 站点的那些页面。只仅仅只能通过修改日志配置文件才能进行配置,请参考下面Enabling Detailed SQL Logging页面中的内容。
搜索日志文件获得已知问题 Atlassian 问题解决和支持工具包括有一个日志分析器。这个日志分析器能够检查你 Confluence 的日志来找到日志中的错误,同时根据日志中 的错误来对我们已知知识库和问题跟踪系统中的内容进行对比。
P3
Copyright © 2014 - 2018, OSSEZ LLC
CWIKI.US - OSSEZ
https://www.cwiki.us
请参考 Troubleshooting Problems and Requesting Technical Support 页面中的内容来找到如何设置按照时间来执行扫描你的日志文件。
Configuring Logging 中文标题【配置日志】 我们推荐你根据你的需求来配置你自己的 Confluence 日志。你可以有下面 2 种方法来修改你的日志: 通过 Confluence 管理员控制台进行配置 – 你的修改仅在本次修改有效,下次重启后将会把所有修改重置。 编辑属性文件 – 你的修改将会在下次重启后生效同时针对所有的会话。 这 2 种方式的修改的方法将在下面的章节中描述。在一些很不常见的情况下,你可能同时还需要修改 logging.properties 文件。 术语:在 log4j 中,一个 'logger' 就是一个命名的实体。日志名是大小写敏感的,这些命名还遵循分段命名的结构。例如一个 logger 被命名为 c om.foo,那这个名是 com.foo.Bar 的上级名称。
在 Confluence 管理员控制台中配置日志 你可以通过 Confluence 管理员控制台(Administration Console)来修改 Confluence 的一些日志的表现。任何按照这个方法修改的的内容只会 在当前 Confluence 的运行实例阶段有效(重启 Confluence 后,你修改的配置将失效)。这里修改的配置内容将不会写入到 log4j. properties 文件中,同时当你在下一次停止 Confluence 的时候修改的内容将会被丢弃。 Confluence 的管理员控制台不能修改所有的日志表现。如果你不能在下面的描述的内容中找到修改的对象,那么你需要停止 Confluence 后编辑 日志属性文件。 Confluence 管理员控制台中的 日志和属性(Logging and Profiling)界面显示了当前定义的所有日志列表。在这个界面中你可以: 打开或者关闭 page profiling。 打开或者关闭 SQL 语句日志。 为一个类或者包添加一个新的日志。 为一个类或者包删除一个新的日志。 为一个类或者包设置日志的级别(INFO, WARN, FATAL, ERROR 或者 DEBUG)。 重置所有的日志级别到 predefined 属性。 修改日志配置
1. 在屏幕的右上角单击控制台按钮 ,然后选择General Configuration 链接。 2. 在左侧面板中管理(Administration)的界面下面选择 日志和配置(Logging and Profiling)。 你需要具有 System Administrator 权限才可以进行这个操作。 3. 日志和配置(Logging and Profiling)界面将会显示,如下图显示,使用下面的的指南来记录 Confluence 的日志表现: 性能属性(Performance Profiling) — 请参考页面Troubleshooting Slow Performance Using Page Request Profiling 中的内容 SQL 日志(SQL Logging)' — 单击 启用 SQL 日志(Enable SQL Logging)按钮来启用记录系统运行的 SQL 脚本。 如果你需要启用日志 SQL 参数变量,你需要修改 properties file 文件中的设置。这个配置的修改在管理员控制台界面中不可 用。 Log4j 日志(Log4j Logging) — 单击下面的的属性按钮来重置你的日志定义为默认的初始化定义: 'Production' 属性定义了标准的属性,推荐你在生产环境中使用。 'Diagnostic' 属性定义了更多的属性配置,能够为你提供更多的日志信息。这个配置将会降低你系统的性能并且让你 日志文件更快的填充满。 'Add New Entry' — 输入类或者包的名字到边上的文本输入框中,然后单击 添加实体(Add Entry)按钮。这个新的日志将会显 示 已存在的级别(Existing Levels) 在下面的界面中。 'Existing Levels' - 这个是当前你 Confluence 实例中的操作。 你可以通过选择 New Level 的下拉列表来修改日志级别。请阅读 Apache documentation 页面中的内容来定义每一个 级别。 单击 'Remove' 链接来停止日志记录你选择的类和包的名称。 4. 单击 保存(Save)按钮来保存你在 'Existing Levels' 部分所做的任何修改。
P4
Copyright © 2014 - 2018, OSSEZ LLC
CWIKI.US - OSSEZ
https://www.cwiki.us
屏幕截图:修改日志级别和参数
编辑属性文件 希望配置日志级别和其他基础参数的设置,你需要停止 Confluence 然后修改 log4j.properties 文件的设置,如果上面的描述。 这个属性文件包括了一系列的不同日志并且可以被你取消备注,如果你希望记录一些特定的组件。请参考 Apache log4j documentation 页面中 的内容。 请参考 Working with Confluence Logs 页面中的的内容来获得一些配置的指南,你可能会发现这些指南对你对问题的诊断会比较有用。
针对 logging.properties 中的 java.util.logging 配置级别 一些库在 Confluence 中被用来使用 java.util.logging 而不是 log4j 或者 slf4j。这些库包括: com.sun.jersey org.apache.shindig net.sf.ehcache Confluence 的 logging.properties 文件设置将 java.util.logging 重定向为 log4j 的特定级别,这个重定向是通过 slf4j 操作的。 为了增加这些库的日志级别,你必须首先配置 logging.properties 文件中的 <CONFLUENCE-INSTALL>/confluence/WEB-INF /classes/。这些日志级别与 Logj 的级别不同,如这里列出来的。 例如,为了让 shindig 增加在日志中输出的内容信息,需要修改 in the logging.properties 文件:
org.apache.shindig.level = INFO
P5
Copyright © 2014 - 2018, OSSEZ LLC
CWIKI.US - OSSEZ
https://www.cwiki.us
为
org.apache.shindig.level = FINE
然后需要使用上面提供的 2 中方式中的一种来配置 log4j 级别。
log4j Logging Levels 中文标题【log4j 日志级别】
日志级别 DEBUG - 被设计为用来获得最多的信息和事件,在对应用程序进行调试的时候,这个日志级别通常能够提供最多的有效信息(查看应 用程序怎么了) INFO - 有关系统正常运行-计划任务运行,服务器开始和结束的世界,用户触发的进程和操作的一些有关声明和输出 WARN - 有关这方面的内容并不是表示系统本身出错了,而是表示系统本身有优化的空间 ERROR - 有关这个的输出表示的是系统在运行的时候遇到了一些错误 FATAL - 有关这个级别的输出表示系统进入了一个非常糟糕的状态并且已经不能从这个状态中恢复了。 TRACE - 没有在 Confluence 中输出 有 2 个方法能够对 Confluence 的日志输出进行调整,相关的方法描述在 log4j Logging Levels 中。 1. 通过管理员控制台(Administration Console)修改运行日志的级别(这个修改将会在系统重启后失效,不是一个永久的修 改)。 2. 手动修改 <Confluence-Install>\confluence\WEB-INF\classes\log4j.properties 文件。
默认日志级别 标准的 Confluence 日志级别 WARN 被保留在 Confluence 服务器中与 Confluence 管理员进行通信。 WARN 及其更高的日志级别应该在 Confluence 保留使用为某些特定的用途,这些能够提醒系统管理员关注这些错误的日志信息,然后对出现的问题进行纠正。
请参考 log4j manual 来获得更多的信息。
Troubleshooting SQL Exceptions 中文标题【SQL 异常的问题解决】 如果你得到了与下面显示内容类似的信息话,那么你最好考虑修改 Confluence 的日志级别输出更多的信息。如果你考虑通过 Atlassian support 获得帮助,那么这些详细的错误信息能够更好的帮助我们找到问题的原因。 增加日志的级别将会让我们能够对下面的问题进行诊断:
org.springframework.dao.DataIntegrityViolationException: (HibernateTemplate): data integrity violated by SQL ''; nested exception is java.sql.BatchUpdateException: Duplicate entry '1234' for key 1 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator. translate(SQLStateSQLExceptionTranslator.java:88) caused by: java.sql.BatchUpdateException: Duplicate entry '1234' for key 1
P6
Copyright © 2014 - 2018, OSSEZ LLC
CWIKI.US - OSSEZ
https://www.cwiki.us
at com.mysql.jdbc.ServerPreparedStatement.executeBatch (ServerPreparedStatement.java:647)
或者
(HibernateTemplate): data integrity violated by SQL ''; nested exception is java.sql.BatchUpdateException: ORA-00001: unique constraint (CONFLUENCE.SYS_C0012345) violated
这个文档对如果在你的系统中增加日志级别,并让日志输出更多详细信息进行了说明。 Changing the logging levels via the Administration Console 从 Confluence 2.7 开始,你可以在你的 Confluence 管理员控制台中调整日志的级别——请阅读 Working with Confluence Logs 页面 中的相关内容。下面我们将会告诉你如何直接编辑 log4j 文件。 1. 打开 confluence/WEB-INF/classes/log4j.properties 然后取消注释下面的行。 ## 行是注释,请保持这行的完整。
## log hibernate prepared statements/SQL queries (equivalent to setting 'hibernate.show_sql' to 'true') #log4j.logger.net.sf.hibernate.SQL=DEBUG ## log hibernate prepared statement parameter values #log4j.logger.net.sf.hibernate.type=DEBUG
如果你不能在你的 log4j.properties 文件中找到上面的内容的话,请在文件的最后添加上这些内容。 重启 Confluence。 重新操作你出现错误的的步骤。 压缩你的日志目录然后添加到你的支持请求工单中。 如果你使用的是 Oracle 数据库同时你收到了一个 constraint error,请询问你的数据库管理员是哪个一个数据库表和列有约束(例如:C ONFLUENCE.SYS_C0012345),获得相关信息后将这些内容添加到你的工单中。 6. 打开 confluence/WEB-INF/classes/log4j.properties 文件,删除在第一步中添加的上面 4 行(让 Confluence 输出更多的 日志信息将会影响 Confluence 的性能,在生产环境中,你应该不输出这些信息)。 2. 3. 4. 5.
相关主题 Enabling Detailed SQL Logging Working with Confluence Logs Troubleshooting failed XML site backups
P7
Copyright © 2014 - 2018, OSSEZ LLC