func()

in pkg/extensionevents/extension_events.go [46:87]


func (eem *ExtensionEventManager) logEvent(taskName string, eventLevel string, message string) {
	if eem.eventsFolder == "" {
		eem.extensionLogger.Warn("EventsFolder not set. Not writing event.")
		return
	}

	extensionVersion := os.Getenv("AZURE_GUEST_AGENT_EXTENSION_VERSION")
	timestamp := time.Now().UTC().Format(time.RFC3339Nano)
	pid := fmt.Sprintf("%v", os.Getpid())
	tid := getThreadID()

	fullMessage := message
	if eem.prefix != "" {
		fullMessage = eem.prefix + message
	}

	extensionEvent := extensionEvent{
		Version:     extensionVersion,
		Timestamp:   timestamp,
		TaskName:    taskName,
		EventLevel:  eventLevel,
		Message:     fullMessage,
		EventPid:    pid,
		EventTid:    tid,
		OperationID: eem.operationID,
	}

	// File name is the unix time in milliseconds
	fileName := strconv.FormatInt(time.Now().UTC().UnixNano()/1000, 10)
	filePath := path.Join(eem.eventsFolder, fileName) + ".json"

	b, err := json.Marshal(extensionEvent)
	if err != nil {
		eem.extensionLogger.Error("Unable to serialize extension event: <%v>", err)
		return
	}

	err = ioutil.WriteFile(filePath, b, 0644)
	if err != nil {
		eem.extensionLogger.Error("Unable to write event file: <%v>", err)
	}
}