-
Notifications
You must be signed in to change notification settings - Fork 2
Change log
Andres Gomez Casanova edited this page Jun 8, 2022
·
8 revisions
- The project has a logo, and it is a typical Colombian Coffee cup. For more information click on the logo.
- License and links are shown in the installation process.
- CGTT appender is a new feature that writes messages to a Created Global Temporary Table. The default configuration is completely functional, but it can be customized by modifying the script.
- Standard output appender was added.
- The Bash/Korn shell files are formatted and more robust.
- Drop support for Db2 version 9.7.
- The documentation in the wiki was updated.
- ReadTheDocs is generated based on the Wiki Documentation.
- n-queens algorithm was included as an example.
- LOG procedure and macros now receive a max-char variable, and it is truncated to 512 (octal) characters.
- The issues that included new features were moved to version 2. This allows having a basic version 1 with all required and working functionality.
- Some tests were failing, and the tests were adjusted to pass, There were no errors in the code.
- Tail_logs works with a new column timestamp. Also, the script that calls next_logs is working fine.
- The internal
CONF_LOGGER
representation has been changed. Currently, there is no synchronization via triggers between this table andCONF_LOGGERS_EFFECTIVE
. The effective table is now dependent onCONF_LOGGERS
. All loggers are registered inCONF_LOGGERS
, and there is no necessity to insert in both tables to change the configuration, just update the logger in the ConfLoggers table. With the previous modification, the ER diagram has been also changed;CONF_LOGGER_EFFECTIVE
has different relationships. - Configuration cache was reviewed. Also, Levels and ConfLoggers are in the cache, and they have been included in a set of tests.
- New appenders could be configured in the utility without modifying the code. They are called dynamically. There are also static appenders that are installed by default (Tables, null).
- Tables appender is only autonomous. The others should be part of the same transaction (XML is not allowed for autonomous).
- A specific configuration of an appender is associated with level. This allows sending only a set of messages to a given appender, instead of registering all messages in all appenders. This is another restriction in addition to the logger level, and this increases the granularity of the configuration. For example, you can configure to write any kind of logs to the LOGS table, but send by mail (This appender still does not exist) just lower messages (for example, Fatal and Error). This change has implied the change in the ER diagram.
- The configuration for the appender is with an XML, and it is stored inline to reduce the IO. An XML schema has been created to include this feature, it is registered in the database and it has been published on the Web site of this project. The XML should be verified before inserting it into the table.
- New appenders were added: NullAppender that just drops off the message; UTL_FILE_appender that writes the messages in a file via the UTL_FILE module.
- The two most important procedures,
LOG
andGET_LOGGER
, check the input values. If the given parameters are wrong, the procedures do not throw errors instead, they ignore the parameters to perform the tasks. This reduced the risk of throwing unnecessary errors and stopping the routine execution. - Queries have been tuned with the clauses: Optimized for, Fetch first N rows only and Isolation (With XX).
- New procedure
NEXT_LOGS
allows seeing the more recent logs since the last call. This helps to see only the most recent message, and the procedure call could be included inside afor
and asleep
in the shell to have a similar function totail -f
. - Runstats is executed on all tables as part of the installation process.
- A new procedure was created to register a log (with a hierarchy multilevel) and assign a level directly.
- The triggers check that is not possible to have two same sons (same name) from the same father. Also, it checks that a logger cannot be the parent itself.
- The message layout can now include the
DB2_SQL_NESTING_LEVEL
. This will put the current nesting level where the utility was called. - The message replacement algorithm in the LOG procedure was changed, in order to reduce the risks of having layout patterns in the given message (Message could contain %p, for example).
-
DefaultLevel
is used as a variable in all code. If you want to change the value, you just need to change it in one place. - Similar to
DefaultLevel
, the size limit of the message is not anchored in all parts toLOGS.MESSAGE
. All parts of the code are anchored to theCOMPLETE_LOGGER_NAME
constant, and that constant anchorsLOGS.MESSAGE
. This eases the change in the message size. -
DefaultRootLevelId
is used to assign a level where it and none of its ascendancy do not have a configured level. - Error codes have changed. Some addition, some movements (I hope this will not happen again), and some deletions.
-
- LG0C3
-
- LG0P1
-
- LG0T1
- LG002 --> LG0P1
- LG0C1 --> LG0C2
- LG0C2 --> LG0C4
- LG0E2 --> LG0E1
- LG0E4 --> LG0E2
-
- LG0C3
-
- LGXE1
-
- LG0E3
-
- LG0E5
-
- All error messages try to have less than 70 characters, or at least part of the reasons are explained in this part. This helps to identify the error when wrapped in another error. Normally, the messages are truncated, and that makes it difficult to identify the problem.
- Also, the triggers' name has been reduced to clearly identify which trigger generates the signals.
- The installation scripts have the same structure for the following shells: Linux (shell), Windows CMD, and Windows PowerShell. Linux scripts do not depend on bash; they are independent and they could also work on KSH. In PowerShell, the scripts show the command to load the DB2 profile.
- Uninstall scripts were improved to deal with different problems.
- Parameters for the installation and tests scripts were documented in the Wiki
- Comments to improve performance has been written:
LOGS
table with Not Logger Initially; Create Array from select viaARRAY_AGG
. These features are not used for compatibility or another kind of collateral issues. - The
README.txt
file explains the files and directories included in the release. - As part of the documentation, routines and triggers indicate with which suite of tests are tested. This helps to have an idea of what is being tested.
- Some files exclusive for development purposes have been excluded from the release version. Also, the execution rights have been changed (766 for Unix files only) - Assembly file.
- Developers have instructions on how to install the utility from the sources. The documentation is in the Wiki.
- A new set of tests has been created for
GetLoggerName
. - The
GET_LOGGER
procedure has now a limit of levels for the hierarchy. This prevents the error of cascade nesting. - The documentation was improved, and many more sections in the Wiki were created. Each of the extra appenders has a guide on how to install them.
- Most of the objects have associated comments in order to understand their usage.
- Unnecessary configuration parameters were deleted.
This version contains the first set of features. For this reason, this section is empty.