This chapter describes various logging options available in Oracle JRockit and HotSpot.
Verbose Logging
The following table lists various logging options available in Oracle JRockit and compares them with the options available in HotSpot.
Table 5-1 Verbose Logging
Oracle JRockit Verbose Module
HotSpot Option
Note
Displays information about each garbage collection (GC) event.
Displays information about the use of native methods and other Java Native Interface (JNI) activity.
HotSpot Logging Options
These are some of the common logging options available in HotSpot that can be used to turn on the diagnostic output for a specific subsystem within the HotSpot JVM.
Table 5-2 Logging Options
HotSpot Logging Options
Note
Sets the path and file name where log data is written.
Enables printing of ergonomically selected JVM flags that appeared on the command line.
Enables printing of collected native memory tracking data at JVM exit when native memory tracking is enabled
Enables verbose diagnostic output from the JVM by printing a message to the console every time a method is compiled.
Enables printing of inlining decisions. This option enables you to see which methods are getting inlined.
Enables printing of a class instance histogram after a Control+C event (SIGTERM). By default, this option is disabled.
Enables printing of java.util.concurrent locks after a Control+C event (SIGTERM). By default, this option is disabled.
Enables the printing of information about which regions are allocated and which are reclaimed by the G1 collector.
Enables printing of information about adaptive generation sizing.
Enables printing of messages at every GC.
Enables printing of how much time elapsed since the last pause (for example, a GC pause).
Enables printing of how much time the pause (for example, a GC pause) lasted.
Enables printing of a date stamp at every GC.
Enables printing of detailed messages at every GC.
Enables printing of time stamps for every individual GC worker thread task.
Displays information about the classes that are being loaded.
Displays information about each garbage collection (GC) event.
Displays information about the use of native methods and other Java Native Interface (JNI) activity.
HotSpot Logging Options
These are some of the common logging options available in HotSpot that can be used to enable the diagnostic output for a specific subsystem within the HotSpot JVM.
Table 5-2 Logging Options
HotSpot Logging Options
Notes
-Xlog
Enables the common logging system for all JVM components.
This option was deprecated in JDK 9.
Sets the path and file name where the log data is written.
Enables printing of the selected JVM flags that appeared on the command-line.
This option was deprecated in JDK 9.
This option was deprecated in JDK 9.
Enables printing of collected native memory tracking data at JVM exit when native memory tracking is enabled.
Enables printing of collected native memory tracking data at JVM exit when native memory tracking is enabled.
Enables verbose diagnostic output from the JVM by printing a message to the console every time a method is compiled.
Enables printing of inlining decisions. This option enables you to view the methods that are getting inlined.
Enables printing of a class instance histogram after a Control+C event (SIGTERM). By default, this option is disabled.
Enables printing of java.util.concurrent locks after a Control+C event (SIGTERM). By default, this option is disabled.
Table 5-3 GC Logging Options
GC Logging Options
Notes
-Xlog:gc
Enables printing of messages at every GC. The gc is the main tag to log all GC related information. The gc tag is combined with other tags to log specific information. A few tags are listed in the following rows.
Enables the printing of information about the regions that are allocated and that are reclaimed by the G1 collector.
Enables printing of information about adaptive generation sizing.
Enables printing of the time elapsed from the last pause (for example, a GC pause).
Enables printing of time stamps for every individual GC worker thread task.
Prints detailed deduplication statistics.
Enables printing of tenuring age information.
Enables printing of detailed messages at every GC.
How to Enable Microsoft Installer logging and Verbose logging to gather additional troubleshooting Information
Symptoms
Windows Installer uses logging to help you troubleshoot issues that may occur when you install software packages. After you enable logging, you can try the unsuccessful installation again. Windows Installer tracks the progress and records the data in a log file. These logs can then be reviewed by support professionals to help determine the issue.
Cause
Microsoft Installer issues can be caused by data corruption, corrupted installations and many other different issues.
Resolution
To troubleshoot these issues, you have to enable logging for two processes, and then try to install the updates again. When you enable logging, the actual error codes that are generated by Windows Installer are captured. As soon as the error codes are captured, you can determine the actual issue and the resolution for that issue. These errors will require you to contact Microsoft Support to resolve the issue. However, you have to do several things before you contact Microsoft Support.
To enable and collect the Windows Installer logs, follow the steps for your operating system.
Step 1: Enable Microsoft Installer logging and Windows Update verbose logging
To have us enable logging for you, go to the «Here’s an easy fix» section. If you prefer to fix this problem manually, go to the «Let me fix it myself» section.
Here’s an easy fix
To fix this problem automatically, click the Download button. In the File Download dialog box, click Run or Open, and then follow the steps in the easy fix wizard.
This wizard may be in English only. However, the automatic fix also works for other language versions of Windows.
If you’re not on the computer that has the problem, save the easy fix solution to a flash drive or a CD, and then run it on the computer that has the problem.
For Windows 8, Windows 7
For Windows Vista, Windows XP, Windows Server 2008, Windows Server 2003
For computers that are running Windows 2000, Windows XP, or Windows Server 2003
Click Start, click Run, type Notepad, and then click OK.
Type the following commands in Notepad.
On the File menu, click Save As.
In the Save in list, click Desktop.
In the File name box, type LoggingOn.reg, click All Files in the Save as type list, and then click Save.
On the desktop, double-click the LoggingOn.reg file to add the registry keys to the Windows registry.
Click OK in the message box.
For computers that are running Windows Vista and Windows Server 2008
Click Start , and then in the Start Search box, type Notepad.
In the Programs list, click Notepad.
Type the following commands in Notepad.
On the File menu, click Save As.
In the Save in list, click Desktop.
In the File name box, type LoggingOn.reg, click All Files in the Save as type list, and then click Save.
On the desktop, double-click the LoggingOn.reg file to add the registry values to the Windows registry.
If you are prompted for an administrator password or confirmation, type the password or click Continue.
Click Yes, and then click OK.
Step 2: Try to install updates again to create the log filesTo try to install the updates again, visit the following Microsoft Update Web site:
http://update.microsoft.comNote It can take several minutes to collect these logs, and the update process may not seem to be functioning correctly. Allow for the necessary time for the process to finish.
Step 3: Disable Microsoft Installer logging and Windows Update verbose loggingImportant As soon as Windows Update or Microsoft Update has finished, disable Windows Installer logging. Having logging enabled can require too much time every time that you install updates, can slow down your computer, and can create large log files that require large amounts of disk space.
To have us disable logging for you, go to the «Here’s an easy fix» section. If you prefer to fix this problem manually, go to the «Let me fix it myself» section.
Here’s an easy fix To fix this problem automatically, click the Download button. In the File Download dialog box, click Run or Open, and then follow the steps in the easy fix wizard.
This wizard may be in English only. However, the automatic fix also works for other language versions of Windows.
If you’re not on the computer that has the problem, save the easy fix solution to a flash drive or a CD, and then run it on the computer that has the problem.
For Windows 8, Windows 7
For Windows Vista, Windows XP, Windows Server 2008, Windows Server 2003
To disable Windows Installer logging, follow the steps for your operating system.
For computers that are running Windows 2000, Windows XP, or Windows Server 2003
Click Start, click Run, type Notepad, and then click OK.
Type the following commands in Notepad.
On the File menu, click Save As.
In the Save in list, click Desktop.
In the File name box, type LoggingOff.reg, click All Files in the Save as type list, and then click Save.
On the desktop, double-click the LoggingOff.reg file to remove the registry values from the Windows registry.
Click OK in the message box.
Delete the LoggingOn.reg and LoggingOff.reg files from the desktop
Contact Microsoft Support for help, and reference this Microsoft Knowledge Base article when you speak to the support agent. For more information about how to contact Microsoft Support, visit the following Microsoft Web site:
For computers that are running Windows Vista and Windows Server 2008
Click Start , and then type Notepad in the Start Search box.
In the Programs list, click Notepad.
Type the following commands in Notepad.
In Notepad, click Save As on the File menu.
In the Save in list, click Desktop.
In the File name box, type LoggingOff.reg, click All Files in the Save as type list, and then click Save.
On the desktop, double-click the LoggingOff.reg file to remove the registry values from the Windows registry.
If you are prompted for an administrator password or confirmation, type the password or click Continue.
Click Yes, and then click OK.
Delete the LoggingOn.reg and LoggingOff.reg files from the desktop.
Contact Microsoft Support for help, and reference this Microsoft Knowledge Base article when you speak to the support agent. For more information about how to contact Microsoft Support, visit the following Microsoft Web site:
msib3a6g.log On computers that are running Windows 2000, Windows XP, or Windows Server 2003, the installer log is located in the following directory:
C:\Documents and Settings\ \Local Settings\Temp\ To open this directory, click Start, click Run, type %temp%, and then click OK.
Note This information assumes that Windows is installed to the default drive C. If this is not the case, adjust the drive letter for the folder path to match the installation drive.
On computers that are running Windows Vista or Windows Server 2008, the installer log is located in the following directory:
C:\Users\ , type %temp% in the Start Search box, and then press ENTER.
Note This information assumes that Windows is installed to the default drive C. If this is not the case, adjust the drive letter for the folder path to match the installation drive.
For more information about how to enable Windows Installer logging, click the following article number to view the article in the Microsoft Knowledge Base:
314852 How to enable Windows Installer logging in Windows XP
Обычные лог-записи состоят из строк и для поиска записи среди массива текста нам приходится использовать регулярные выражение
Структурное логирование хранит записи в виде объектов (структур). Например, с помощью JSON
Serilog
Теперь можно передавать объект logger через Dipendency Injection, или сразу его использовать. Допустим мы создаем программу для диагностики автомобиля и нам необходима информация о производителе, серии и дате впуска. И конечно, чтобы все хранилось в структурном виде.
Поскольку мы использовали вывод в консоль и файл, то и результат будет в виде привычной строки.
Одной из удобных особенностей является добавка часто используемых свойств. Для web приложения это может быть сессия пользователя, посещаемый URL, данные браузера. В более общем случае можно добавить версию приложения. Сделать это можно с помощью свойства Enrich и уже встроенных классов, или написать свой.
Для удобного вывода в консоль или текстовый файл сложных объектов лучше подсказать шаблону Serilog о том, что используем именно сложный объект, а не примитивный тип, добавив символ @. Иначе будет выводится typeof(MyClass).ToSting().
Приложение Seq приходит на помощь для удобного хранения и поиска структурных логов. Работает Seq в виде windows сервиса, который принимает REST-запросы, а внутри хранит данные в NoSql БД.
После установки Seq необходимо также добавить в приложение Serilog.Sinks.Seq Nuget пакет. А далее подружить наш Serilog с Seq.
Теперь можно удобно делать поиск по нашим полям, включая сравнение чисел и дат
Параметры поиска можно сохранять и использовать в других частях приложения. Добавляем Environment в Dashboard
А можно добавить real-time Dashboard отображение ошибок, пришедших именно от приложения «MyApp», версии «1.2.1» и произошедших в методе «Repository.GetUserByIdAndPassword()».
Displays information about the classes that are being loaded.
Displays information about each garbage collection (GC) event.
Displays information about the use of native methods and other Java Native Interface (JNI) activity.
HotSpot Logging Options
These are some of the common logging options available in HotSpot that can be used to enable the diagnostic output for a specific subsystem within the HotSpot JVM.
Table 5-2 Logging Options
HotSpot Logging Options
Notes
-Xlog
Enables the common logging system for all JVM components.
This option was deprecated in JDK 9.
Sets the path and file name where the log data is written.
Enables printing of the selected JVM flags that appeared on the command-line.
This option was deprecated in JDK 9.
This option was deprecated in JDK 9.
Enables printing of collected native memory tracking data at JVM exit when native memory tracking is enabled.
Enables printing of collected native memory tracking data at JVM exit when native memory tracking is enabled.
Enables verbose diagnostic output from the JVM by printing a message to the console every time a method is compiled.
Enables printing of inlining decisions. This option enables you to view the methods that are getting inlined.
Enables printing of a class instance histogram after a Control+C event (SIGTERM). By default, this option is disabled.
Enables printing of java.util.concurrent locks after a Control+C event (SIGTERM). By default, this option is disabled.
Table 5-3 GC Logging Options
GC Logging Options
Notes
-Xlog:gc
Enables printing of messages at every GC. The gc is the main tag to log all GC related information. The gc tag is combined with other tags to log specific information. A few tags are listed in the following rows.
Enables the printing of information about the regions that are allocated and that are reclaimed by the G1 collector.
Enables printing of information about adaptive generation sizing.
Enables printing of the time elapsed from the last pause (for example, a GC pause).
Enables printing of time stamps for every individual GC worker thread task.
Prints detailed deduplication statistics.
Enables printing of tenuring age information.
Enables printing of detailed messages at every GC.