The present disclosure is directed, in general, to monitoring and logging software and hardware failures.
During installation and operation, failures may occur in software and hardware. For example, a failure (also referred to as an “error”) may be caused by a driver fault or caused by a hardware defect. Software and hardware developers often analyze and interpret failures or errors in order to find the cause of the failures. By determining the cause of the failures, developers can provide necessary software updates or improved hardware designs.
To determine the cause of failures or errors, developers need certain information about the failures that they regard as essential. Unfortunately, developers often lack such information about the failures. Users experiencing failures typically do not provide such essential information to the developers. Consequently, developers trying to analyze and interpret the failures are often relegated to re-create failures and issues in-house. Also, it may be necessary for developers to contact users to obtain essential information about the failures.
Various disclosed embodiments are directed to methods and systems for monitoring and logging errors over a communication network. By monitoring and logging errors, essential information relating to the errors is obtained.
In one embodiment, the method includes detecting an event caused by an error, and generating a log of the event in response to the detection. The method further includes generating a first message prompting if a user consents to allowing a third party provider to track the error and transmitting the log to the third party provider over the communication network if the user consents to allowing the third party provider to track the error.
According to various disclosed embodiments, the method includes generating a second message prompting if the user wants to provide additional information relating to the error. The method includes providing a user interface including an error reporting portal to the user if the user wants to provide additional information relating to the error. The method includes receiving the additional information relating to the error on the portal and transmitting the portal to the third party provider over the communication network.
According to various disclosed embodiments, the method includes encrypting the log if the user consents to allowing the third party provider to track the error. The method includes generating a log identification and an error code associated with the error, and transmitting the log with the log identification and the error code to the third party provider over the communication network.
According to various disclosed embodiments, The method includes deleting the log if the user declines to allow the third party provider to track the error.
According to various disclosed embodiments, the error reporting portal includes a voice recorder configured to record a voice message. The error reporting portal includes a diagnostic button to enable a user to run diagnostics relating to the error and to log detailed information relating to the error.
According to various disclosed embodiments, a non-transitory computer-readable medium encoded with computer-executable instructions monitors and logs errors over a communication network. The computer-executable instructions when executed cause at least one data processing system to: detect an event and generate a log of the event in response to the detection; transmit the log to a third party provider over the communication network; provide a user interface including an error reporting portal for receiving additional information relating to the error; and transmit the error reporting portal to the third party provider over the communication network.
Reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
Various disclosed embodiments are directed to methods and systems for monitoring and logging errors over a communication network. By monitoring and logging errors, essential information relating to the errors is obtained.
Referring to
Other peripherals, such as local area network (LAN)/Wide Area Network/Wireless (e.g. WiFi) adapter 112, may also be connected to local system bus 106. Expansion bus interface 114 connects local system bus 106 to input/output (I/O) bus 116. I/O bus 116 is connected to keyboard/mouse adapter 118, disk controller 120, and I/O adapter 122. Disk controller 120 can be connected to storage 126, which can be any suitable machine usable or machine readable storage medium, including but not limited to nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), magnetic tape storage, and user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs), and other known optical, electrical, or magnetic storage devices.
Also connected to I/O bus 116 in the example shown is audio adapter 124, to which speakers (not shown) may be connected for playing sounds. Keyboard/mouse adapter 118 provides a connection for a pointing device (not shown), such as a mouse, trackball, trackpointer, etc.
Those of ordinary skill in the art will appreciate that the hardware depicted in
Data processing system 100 in accordance with an embodiment of the present disclosure includes an operating system employing a graphical user interface. The operating system permits multiple display windows to be presented in the graphical user interface simultaneously, with each display window providing an interface to a different application or to a different instance of the same application. A cursor in the graphical user interface may be manipulated by a user through the pointing device. The position of the cursor may be changed and/or an event, such as clicking a mouse button, generated to actuate a desired response.
LAN/WAN/Wireless adapter 112 can be connected to network 130 (not a part of data processing system 100), which can be any public or private data processing system network or combination of networks, as known to those of skill in the art, including the Internet. Data processing system 100 can communicate over network 130 with server system 140, which is also not part of data processing system 100, but can be implemented, for example, as a separate data processing system 100. Data processing system 100 may be configured as a workstation, and a plurality of similar workstations may be linked via a communication network to form a distributed system in accordance with embodiments of the disclosure.
Application 204 may be implemented as a logging tool embedded in driver 208. The logging tool is configured to detect an event which may be an error or a failure in software or hardware. Application 204 generates log 212 of the event, which may be transmitted to a third party service provider or a manufacturer over a communication network such as, for example, the Internet. The generated logs may be encrypted to maintain confidentiality of the related information.
In block 304, application 204 monitors an operating system or applications for any event. The event may be an error caused by a driver fault.
In block 308, an event is detected by application 204. In block 312, a log is generated by application 204 in response to the detection. The log records information relating to the event.
In decision block 316, a user is prompted if a third party provider may be allowed to track the error. For example, a message may be generated which seeks the user's consent to allow a third party provider to track the error. The third party provider may be a service provider or a software or hardware developer interested in monitoring errors and obtaining essential information relating to the errors so that software updates or fixes may be provided.
If the user consents to allowing the third party provider to track the error, in block 320 the log is transmitted to the third party provider over a communication network (e.g., Internet). If the user declines to allow the third party provider to track the error, in block 322 the log is deleted and the flow returns to block 304 where application 204 continues to monitor for events.
In block 324, a second message is generated prompting if the user wants to provide additional information relating to the error. If the user wants to provide additional information, in block 328 a user interface including an error reporting portal is provided to the user. The user can provide additional information relating to the error on the portal. In block 332, the portal is transmitted to the third party provider over the communication network. If the user declines to provide additional information, the flow returns to block 304.
According to various disclosed embodiments, the log may be encrypted to maintain confidentiality of the information.
According to various disclosed embodiments, a log-identification and one or more error codes associated with the driver fault may be generated and transmitted with the log. The error codes are enumerated messages that correspond to errors in, for example, software or driver applications. The error codes may be used to identify faulty hardware and software.
According to various disclosed embodiments, the user's email address and other contact information may be included on the error reporting portal to allow the third party provider to contact the user, if necessary.
According to some disclosed embodiments, a non-transitory computer-readable medium encoded with computer-executable instructions monitors and logs errors over a communication network. The computer-executable instructions when executed cause at least one data processing system to: detect an event caused by an error; generate a log of the event in response to the detection; transmit the log to a third party provider over the communication network; provide a user interface including an error reporting portal for receiving additional information relating to the driver fault; and transmit the portal to the third party provider over the communication network.
Those skilled in the art will recognize that, for simplicity and clarity, the full structure and operation of all systems suitable for use with the present disclosure is not being depicted or described herein. Instead, only so much of a system as is unique to the present disclosure or necessary for an understanding of the present disclosure is depicted and described. The remainder of the construction and operation of the disclosed systems may conform to any of the various current implementations and practices known in the art.
Of course, those of skill in the art will recognize that, unless specifically indicated or required by the sequence of operations, certain steps in the processes described above may be omitted, performed concurrently or sequentially, or performed in a different order. Further, no component, element, or process should be considered essential to any specific claimed embodiment, and each of the components, elements, or processes can be combined in still other embodiments.
It is important to note that while the disclosure includes a description in the context of a fully functional system, those skilled in the art will appreciate that at least portions of the mechanism of the present disclosure are capable of being distributed in the form of instructions contained within a machine-usable, computer-usable, or computer-readable medium in any of a variety of forms, and that the present disclosure applies equally regardless of the particular type of instruction or signal bearing medium or storage medium utilized to actually carry out the distribution. Examples of machine usable/readable or computer usable/readable mediums include: nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), and user-recordable type mediums such as floppy disks, hard disk drives and compact disk read only memories (CD-ROMs) or digital versatile disks (DVDs).
Those skilled in the art to which this application relates will appreciate that other and further additions, deletions, substitutions and modifications may be made to the described embodiments.