quickfix-j / quickfixj

QuickFIX/J is a full featured messaging engine for the FIX protocol. - This is the official project repository.
http://www.quickfixj.org
Other
934 stars 607 forks source link

Extra logging for fields when validation is disabled #824

Open borkabu opened 3 weeks ago

borkabu commented 3 weeks ago

Is your feature request related to a problem? Please describe.

Currently there are such options as AllowUnknownMsgFields and ValidateUserDefinedFields. We are working in an environment where dictionary changes faster than we would like it to happen. At the same time we do not want messages to be rejected when some new field appears. So we set AllowUnknownMsgFields=Y and ValidateUserDefinedFields=N to allow messages new fields to come through. However, quickfix does not really say when field has been allowed through because of disabled validation.

Describe the solution you'd like

I would like quickfix to log fields which would fail validation if these two options would be AllowUnknownMsgFields=N and ValidateUserDefinedFields=Y. Something like User Defined Field X is detected Unknown message field X is detected

chrjohn commented 3 weeks ago

I see that this might come in handy in one case or another. Want to submit a PR? Edit: of course this should be disabled by default. :)

borkabu commented 3 weeks ago

Would it need an extra option, something like EnableValidationLogging? Or maybe a couple of those LogUnknownMsgFields and LogUserDefinedFields

chrjohn commented 3 weeks ago

To keep it simple, maybe just FieldValidationLogging with a default of N.

borkabu commented 2 weeks ago

One more thing related to this ticket. In the same manner I need to be able not to validate Enums, and log Unknown Enum value X for tag Y is detected, when the logging is on. So, it would require to add ValidateEnumValues flag (default Y).

chrjohn commented 2 weeks ago

So, it would require to add ValidateEnumValues flag (default Y).

If you need that separate, OK with me. Otherwise I have nothing against having only FieldValidationLogging as config option.

chrjohn commented 1 week ago

@borkabu I don't know if you already started creating a PR for this: just wanted to let you know that I will merge #831 in due course which moves the validation settings into a separate class. But it will probably not affect you since you only want to act on the result of the validation and do not want to change the validation settings themselves.

borkabu commented 1 week ago

Submitted PR. I wonder if I do another PR against 2.3.1, what is the chance for 2.3.2 to be released?

chrjohn commented 1 week ago

Next release will be 3.0.0. I don't think there will be another 2.3.x unless for critical fixes.

borkabu commented 1 week ago

Any thoughts on timeline for 3.0.0 then?

chrjohn commented 1 week ago

Probably in the next weeks