75 lines
1.7 KiB
Go
75 lines
1.7 KiB
Go
package market
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
// initializeLogging sets up JSONL logging files
|
|
func (md *MarketDiscovery) initializeLogging() error {
|
|
// Create logs directory if it doesn't exist
|
|
if err := os.MkdirAll("logs", 0755); err != nil {
|
|
return fmt.Errorf("failed to create logs directory: %w", err)
|
|
}
|
|
|
|
// Open market scan log file
|
|
marketScanFile, err := os.OpenFile(md.config.Logging.Files["market_scans"], os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
|
|
if err != nil {
|
|
return fmt.Errorf("failed to open market scan log file: %w", err)
|
|
}
|
|
md.marketScanLogger = marketScanFile
|
|
|
|
// Open arbitrage log file
|
|
arbFile, err := os.OpenFile(md.config.Logging.Files["arbitrage"], os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
|
|
if err != nil {
|
|
return fmt.Errorf("failed to open arbitrage log file: %w", err)
|
|
}
|
|
md.arbLogger = arbFile
|
|
|
|
return nil
|
|
}
|
|
|
|
// Logging methods
|
|
func (md *MarketDiscovery) logMarketScan(result *MarketScanResult) error {
|
|
data, err := json.Marshal(result)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
_, err = md.marketScanLogger.Write(append(data, '\n'))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return md.marketScanLogger.Sync()
|
|
}
|
|
|
|
func (md *MarketDiscovery) logArbitrageOpportunity(opp *ArbitrageOpportunityDetailed) error {
|
|
data, err := json.Marshal(opp)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
_, err = md.arbLogger.Write(append(data, '\n'))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return md.arbLogger.Sync()
|
|
}
|
|
|
|
func (md *MarketDiscovery) logPoolDiscovery(result *PoolDiscoveryResult) error {
|
|
data, err := json.Marshal(result)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
_, err = md.marketScanLogger.Write(append(data, '\n'))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return md.marketScanLogger.Sync()
|
|
}
|