The log file monitoring is only work for active agent now. The active agent will send only the new entry of log to the server.
For non-active agent, the server will poll the log from the agent. If using a non-active agent to monitor a log file, zabbix will treat it as text and record the value whenever a check is performed, even if there is no change on the log.
Currently I'm using external check for log monitoring. I wrote a script that prints the latest entry of the log. Actully this log is not a file, but some latest information queried from the API provided by a remote third party application. In this case, zabbix stores all checked values, and most of them are identical.
Although I can also revise the script to print the information as log file (working as a daemon), and then use local active zabbix agent, this approach restricts the host interface to localhost and complicates the configuration.
In general, for a log type item, it makes scene that zabbix records the value and process related triggers only if it changes, more specifically its time stamp changes. Therefore I'd like to recommend this feature for active checked logs.