Teensy has 2K of EEPROM, that is quite a bit for logging. My Iridium Tracker can keep about 100 log entries, so I can see the last number of times it has sent messages.

// TODO - You must have a config entry to store the log position to form a circular buffer

#define LOG_START 50			// Start EEPROM
#define LOG_SIZE 1900			// Size (bytes) allowed (max log size)
struct LOGSTRUCT {
	unsigned int datetime;		// TODO time_t ?
	unsigned int lat;
	unsigned int lng;
	byte status;
};
LOGSTRUCT logdata = { 0, 0, 0, 0 };

void setup() {
	// Read last log
	readLog(3);
	Serial.print("Log at position 3 = ");
	Serial.println(logdata.datetime);

	// Write new log
	logdata.datetime = millis();
	logdata.lat = logdata.lat++;
	logdata.lng = logdata.lng++;
	logdata.status = logdata.status++;
	writeLog();
}

void loop() {
}

void writeLog() {
	config.logloc++;   // You need to store config somewhere too
	if ( config.logloc > ( LOG_SIZE / sizeof(LOGSTRUCT) ) ) {
		config.logloc = 0;
	}
	EEPROM.writeBlock( LOG_START + (config.logloc * sizeof(LOGSTRUCT)), logdata);
	writeConfig();
}

void readLog(byte loc) {
	EEPROM.readBlock( LOG_START + (loc * sizeof(LOGSTRUCT)), logdata );
}