diff --git a/smartgears/smartgears/defaults/main.yml b/smartgears/smartgears/defaults/main.yml index edc7114..f172030 100644 --- a/smartgears/smartgears/defaults/main.yml +++ b/smartgears/smartgears/defaults/main.yml @@ -48,6 +48,12 @@ smartgears_http_port: 9000 smartgears_service_name: 'tomcat-instance-{{ smartgears_http_port }}' smartgears_loglevel: WARN +smartgears_dataanalysis_loglevel: DEBUG +smartgears_log_max_history: 30 +smartgears_log_max_file_size: 10M +smartgears_log_total_file_cap: 2GB +smartgears_log_dir: '{{ smartgears_user_home }}/tomcat/logs' +smartgears_logback_template: True smartgears_tomcat_contexts: [ '' ] diff --git a/smartgears/smartgears/tasks/smartgears-app.yml b/smartgears/smartgears/tasks/smartgears-app.yml index a947936..086b16e 100644 --- a/smartgears/smartgears/tasks/smartgears-app.yml +++ b/smartgears/smartgears/tasks/smartgears-app.yml @@ -62,13 +62,22 @@ template: src=change-logback-loglevel.sh.j2 dest=/usr/local/bin/change-logback-loglevel owner=root group=root mode=0755 with_items: '{{ tomcat_m_instances }}' when: not item.skip_smartgears - tags: [ 'smartgears', 'smartgears_loglevel', 'tomcat' ] + tags: [ 'smartgears', 'smartgears_loglevel', 'tomcat', 'logback_conf' ] - name: Change the smartgears log level become: True become_user: '{{ smartgears_user }}' shell: /usr/local/bin/change-logback-loglevel - tags: [ 'smartgears', 'tomcat', 'smartgears_loglevel' ] + when: not smartgears_logback_template + tags: [ 'smartgears', 'tomcat', 'smartgears_loglevel', 'logback_conf' ] + +- name: Install the smartgears logback configuration + become: True + become_user: '{{ smartgears_user }}' + template: src=logback.xml.j2 dest={{ smartgears_instance_path }}/lib/logback.xml + when: smartgears_logback_template + tags: [ 'smartgears', 'smartgears_conf', 'tomcat', 'logback_conf' ] + - name: Remove some wrong symbolic links created by the install/upgrade script file: dest={{ item }} state=absent diff --git a/smartgears/smartgears/templates/logback.xml.j2 b/smartgears/smartgears/templates/logback.xml.j2 new file mode 100644 index 0000000..35a8f2f --- /dev/null +++ b/smartgears/smartgears/templates/logback.xml.j2 @@ -0,0 +1,94 @@ +<configuration> + + <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>{{ smartgears_log_dir }}/ghn.log</file> + <append>true</append> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{0}: %msg%n + </pattern> + </encoder> + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> + <fileNamePattern>{{ smartgears_log_dir }}/ghn.%d{yyyy-MM-dd}.log</fileNamePattern> + <maxFileSize>{{ smartgears_log_max_file_size }}</maxFileSize> + <maxHistory>{{ smartgears_log_max_history }}</maxHistory> + <totalSizeCap>{{ smartgears_log_total_file_cap }}</totalSizeCap> + </rollingPolicy> + </appender> + + <appender name="ACCOUNT_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>{{ smartgears_log_dir }}/accounting.log</file> + <append>true</append> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{0}: %msg%n + </pattern> + </encoder> + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> + <fileNamePattern>{{ smartgears_log_dir }}/accounting.%d{yyyy-MM-dd}.log + </fileNamePattern> + <maxFileSize>{{ smartgears_log_max_file_size }}</maxFileSize> + <maxHistory>{{ smartgears_log_max_history }}</maxHistory> + <totalSizeCap>{{ smartgears_log_total_file_cap }}</totalSizeCap> + </rollingPolicy> + </appender> + + <appender name="ACCESS_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>{{ smartgears_log_dir }}/access.log</file> + <append>true</append> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{0}: %msg%n + </pattern> + </encoder> + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> + <fileNamePattern>{{ smartgears_log_dir }}/access.%d{yyyy-MM-dd}.log + </fileNamePattern> + <maxFileSize>{{ smartgears_log_max_file_size }}</maxFileSize> + <maxHistory>{{ smartgears_log_max_history }}</maxHistory> + <totalSizeCap>{{ smartgears_log_total_file_cap }}</totalSizeCap> + </rollingPolicy> + </appender> + +{% if dataminer_app_install is defined and dataminer_app_install %} + <appender name="ANALYSIS" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>{{ smartgears_log_dir }}/analysis.log</file> + <append>true</append> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{0}: %msg%n + </pattern> + </encoder> + <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> + <maxFileSize>{{ smartgears_log_max_file_size }}</maxFileSize> + <fileNamePattern>{{ smartgears_log_dir }}/analysis.%d{yyyy-MM-dd}.log + </fileNamePattern> + <maxHistory>{{ smartgears_log_max_history }}</maxHistory> + <totalSizeCap>{{ smartgears_log_total_file_cap }}</totalSizeCap> + </rollingPolicy> + </appender> + + <logger name="org.gcube.dataanalysis" level="{{ smartgears_dataanalysis_loglevel }}"> + <appender-ref ref="ANALYSIS" /> + </logger> +{% endif %} + + <logger name="org.gcube.data.publishing" level="FATAL"> + <appender-ref ref="ACCOUNT_FILE" /> + </logger> + <logger name="org.gcube.documentstore" level="FATAL"> + <appender-ref ref="ACCOUNT_FILE" /> + </logger> + + <logger name="org.gcube.smartgears.handlers.application.request" + level="INFO"> + <appender-ref ref="ACCESS_FILE" /> + </logger> + + <logger name="org.gcube" level="{{ smartgears_loglevel }}" /> + <logger name="org.gcube.smartgears" level="{{ smartgears_loglevel }}" /> + <logger name="org.gcube.common.events" level="{{ smartgears_loglevel }}" /> + <logger name="org.gcube.data.publishing" level="FATAL" /> + <logger name="org.gcube.documentstore" level="FATAL" /> + + + <root level="{{ smartgears_loglevel }}"> + <appender-ref ref="FILE" /> + </root> +</configuration>