Home 日本語

Log Parser

Gathering data from your character shouldn't be hard to do. It is something that should be part of the game but isn't.


Log Parser Basics

The logs that FFXIV produces have some issues that prevent deep statistics. A few notes on this:

The data gathered by the log viewer is reduced to just a small fraction of the overall log. An example output of a log entry being sent would be:

[{"monster": "brine bogy", 
"charactername": "Joe User", 
"damage": [["25", 0], ["27", 0]], 
"datetime": "12/23/10 22:40:33", 
"skillpoints": 192, 
"exp": 479, 
"hitdamage": [["29", 0], ["29", 0]], 
"miss": 1, 
"class": "hand-to-hand"}]

Below we discuss what each of these are and how they are used.

The damage is sent as individual values so we can calculate the average for each type of hit(critical or not) and the overall. This is also true for the hitdamage which is used to calculate the average as well as totals for each fight. The miss number is used to determine the % accuracy of your hits based on the total number of hits you took.

What Happens to my Data?

The log data that is uploaded gets added to a database of all users. This is then used to display the information listed on the Character Battle Stats page. We do not show the actual user data that is being uploaded and it is not a requirement that you upload the data under your own character name. For consistency you should always use the same character name when uploading your data so we can prune and keep out duplicates.

How the Script Works

The script parses the logs one entry at a time and determines a code. This code tells you what type of data it is reading and then it parses the log text for the details such as damage, monster names and the like. The script has two modes. The windows mode is very simple and it will silently gather data in the background every minute and determine if there is anything new to upload. If it finds new data it will upload it and start from there.

You can also run it from the command line to have a more detailed view of what the log parser is doing. In this mode it will also let you see more information than the windowed version. You can parse out chat logs, battle information and filter on specific monsters. It will also ask if you want to upload the information. If you do not want to and just wish to view the data you can tell it that you do not want to upload and it will spit out the raw data to your screen.

Command Line Parameters

CharacterName PathToLogFiles LogDataType RunForever[True/False] FilterByMonster[optional]
python logparse.py "c:\Users\\Documents\My Games\Final Fantasy XIV\user\\log\" battle false
Available LogDataTypes:
battle - view battle logs.
chat - all chat logs.
linkshell - linkshell chat logs.
say - say chat logs.
party - Party chat logs.

Examples of FilterByMonster: "ice elemental" "fat dodo" "warf rat"
if you are running the executable version an example would be:
logparse.exe "c:\Users\\Documents\My Games\Final Fantasy XIV\user\\log\" battle false