Preventing Log Line Loss with Safe Logger

Preventing Log Line Loss with Safe Logger
Download ALL MT5 scripts (408)
YouTube Video Thumbnail



Similar MetaTrader Tools

Preventing Log Line Loss with Safe Logger

Info

The Preventing Log Line Loss with Safe Logger is a Script for MetaTrader 5 that safe logger is a solution to prevent log line loss when multiple eas share the same file. Overview of Safe LoggerThe Safe Logger appends one line to a shared file without losing any lines.

Usage

This tool is typically used for enhancing chart analysis and decision making.

Platform

This Script works exclusively on MetaTrader 5 (both build 600+ and newer versions).

Setup

Place the downloaded file in MQL5/Scripts folder via File ? Open Data Folder in MetaTrader 5.


How to Install and Use Preventing Log Line Loss with Safe Logger

1. Installation: Move your script file into the MQL/Scripts directory and restart the platform.

2. Execution: Drag the script onto a chart; it will perform a one-time action, such as closing all open orders or clearing chart objects.

3. Editing: Use MetaEditor (F4) to modify code, click "Compile," and verify no errors appear in the terminal before running.

4. Removing: Scripts stop automatically, but you can remove them manually by right-clicking the chart and choosing "Remove Script."

Frequently Asked Questions

Q: How are scripts different from EAs? A: Scripts execute a single action and then stop; EAs monitor the market and trade continuously.

Q: Can I assign a hotkey to a script? A: Yes, right-click the script in the Navigator, select "Set Hotkey," and define your preferred keyboard shortcut.

Q: Why did my script stop? A: Scripts are designed to stop immediately after finishing their programmed command; this is normal behavior.

What this tool does

Safe Logger is a solution to prevent log line loss when multiple EAs share the same file.

Typical Use Case

This Script excels in automated trading and technical analysis on MetaTrader 5.

Compatible Platform & Setup

This Script works on MetaTrader 5. Place the file in the MQL5/Scripts folder and restart the terminal.

Description & Settings

Related: show trade lines service - another powerful script for MetaTrader 5 traders.

Safe Logger is a solution to prevent log line loss when multiple EAs share the same file.

Overview of Safe Logger

Also recommended: News Indicator with Vertical Lines - similar script with strong performance on MetaTrader 5.


The Safe Logger appends one line to a shared file without losing any lines. It opens the file exclusively, retries up to 8 times with 40 ms between attempts if another EA is holding the file, and prints an error message with the lost line when the retries are exhausted.

Key Functions:
- SafeLogWrite function: prepends the TimeLocal() timestamp and the symbol, and appends time;symbol;fields to the log file
- SafeLogHeader function: writes the header to the file if it does not exist yet

Demo Settings:
- InpFile: demo_log.csv
- InpLines: 200
- InpSafeMode: true (set to false to demonstrate the issue with FILE_SHARE_WRITE)

Demo Output:
- The mode used
- Successful FileOpen calls
- Line count before and after writing
- Time taken to write the log
- Notification of lost lines when FileOpen is successful but lines are missing

Limitation:
- Log line loss is only noticeable with concurrent writers. To demonstrate this, run the script on four charts simultaneously with InpSafeMode set to false. On a single chart, there is no contention, and both modes produce the same line count.

You may also like: Lot Line Indicator - excellent alternative for script users on MetaTrader 5.

Source Code

#property copyright "RobotFX"
#property link "https://robotfx.org"
#property version   "1.00"
#property script_show_inputs
#include "SafeLogger.mqh"
input string InpFile     = "demo_log.csv";
input int    InpLines    = 200;
input bool   InpSafeMode = true;
bool UnsafeWrite(const string file, const string fields)
  {

.......

Leave your opinion, ask a question, share some knowledge

⚠ Limitations & Risk Warning

  • This tool is provided for educational and testing purposes only.
  • Past performance does not guarantee future results.
  • Trading involves substantial risk of loss. Use on a demo account first.
  • Results may vary depending on market conditions, broker, and settings.
  • We recommend thorough backtesting and forward testing before using with real funds.
© ROBOTFX Free educational tools by RobotFX. Use entirely at your own risk; we are not liable for any financial losses incurred.