我正在 Chrome 浏览器上运行 angularjs 应用程序,并希望记录引发的所有错误。我正在使用以下方法来做到这一点:
window.onerror = function(message, url, linenumber) {
alert("JavaScript error: " + message + " on line " + linenumber + " for " + url);
log.error("JavaScript error: " + message + " on line " + linenumber + " for " + url);
}
Run Code Online (Sandbox Code Playgroud)
这对于任何 js 错误似乎都能正常工作,但它似乎不会因以下情况而触发:
错误:TYPE_MISMATCH_ERR:DOM 异常 17 错误:对象的类型与与该对象关联的参数的预期类型不兼容。
ReferenceError:套接字未定义
有任何想法吗?
我已经在我的网站上工作了一年多了,我非常渴望最终将它放在那里供人们使用。然而它已经变得相当大了——我几乎想说超出了我的控制——最重要的是,我实际上只是一个自学的业余程序员。
所以我想确保 php 产生的任何错误都记录在一个文件中,这样我就可以访问该文件并跟踪错误。
目前我的设置如下:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '0');
ini_set('log_errors', 1);
ini_set('error_log', 'errors.log');
?>
Run Code Online (Sandbox Code Playgroud)
到目前为止效果很好,我的 error.log 文件将包含如下内容:
[14-May-2013 00:16:26] PHP 注意:未定义的变量:/home/www/dir/index.php 第 14 行中不存在变量[14-May-2013 00:16:28] PHP 注意:未定义的变量:第 14 行 /home/www/dir/index.php 中不存在变量
太好了,错误已记录。
但现在我有一个问题:
他们都排成一排,没有间断。使其难以阅读。如何在新行中获取每个错误?
我看到有一个时间戳。惊人的!我如何添加用户的 IP 地址等内容或任何其他自定义内容?
再次,我的问题:
如何更改 PHP 在错误日志文件中写入错误的方式? 特别是,如何在记录每个错误后创建一个新行,以便 error.log 文件更易于阅读。如何添加自定义数据和值(例如 IP 地址)?
答案: 我最终做了以下事情 - 这似乎在某种程度上重现了 php 按标准所做的事情,并且可以从那里进行修改。
<?php
function my_error_handler($type, $message, $file, $line, $vars)
{
switch($type)
{
case 1: // 1 //
$type_str = 'ERROR';
break;
case 2: // 2 //
$type_str = 'WARNING';
break; …Run Code Online (Sandbox Code Playgroud) 已经这样做了好几天了,没有运气。
在对所有用户、组和共享完成 Freenas 初始安装后,USB 失败。数据一切都很好,但是我没有配置文件的备份。使用的Freenas版本是FreeNAS-8.3.1-RELEASE-x64 (r13452)
更换 USB 并重新设置所有内容后 - 我重新连接数据硬盘并开始重新创建所有用户和组。一切都很好,直到我开始设置 Rsync 备份脚本,将数据本地复制到外部 USB 硬盘上。
我正在使用的脚本是
#!/bin/sh
# Simple script to backup data from BACKUP_SRC to BACKUP_DST
#
# this can be any drive attached to your FreeNAS box ...
# ... internal drive(s), external USB drive(s), external SATA drives(s)
# Backup source
BACKUP_SRC=/mnt/DATA/test/
# Backup destination -- DO NOT include the trailing slash
BACKUP_DST=/mnt/BACKUP1/SHARED
# For a seven day cyclical backup, remove the comment from the line 'DAY=option$
# …Run Code Online (Sandbox Code Playgroud) 我正在使用 编写一个简单的错误处理set_exception_handler(...)。一切工作正常,但当我在自定义文件中使用 和 记录异常时,默认异常记录syslog似乎被禁用。set_exception_handler(...)
对于“非 s”的记录,Trowable有一个函数set_error_handler。如果处理函数返回false,则正常的错误处理程序将继续,这意味着原始 PHP 错误消息将存储到系统日志中。对于异常处理程序,没有return提供任何值。
set_exception_handler(...)执行 's 回调后,如何将原始 PHP 错误消息存储到系统日志中?
php error-handling error-logging custom-error-handling php-7
Python 3 引入了异常链,因此:
import logging
logger = logging.getLogger(__name__)
class MyException(Exception):
pass
def blow_up():
try:
impossible = 42 / 0
except ZeroDivisionError as zde:
raise MyException('Uh oh!') from zde
try:
blow_up()
except:
logger.exception('It blew up!')
Run Code Online (Sandbox Code Playgroud)
产生这个:
It blew up!
Traceback (most recent call last):
File "ka-boom.py", line 10, in blow_up
impossible = 42 / 0
ZeroDivisionError: division by zero
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "ka-boom.py", line 15, in <module> …Run Code Online (Sandbox Code Playgroud) 我是 Logstash 的新手。我觉得很有趣。但目前我正在处理与 .NET core 应用程序相关的日志记录。我使用 Logstash 来满足我的日志记录需求是否正确?看到logstash 仅用于服务器端日志记录后,我很困惑。
先谢谢您的帮助。
我是网站前端/客户端应用程序开发的新手。我正在建立一个新的反应项目。我用了create-react-app。
我应该如何处理控制台错误(网络调用错误除外)?有没有办法将它们记录在任何文件中?
最佳日志记录实践是什么?
下面的代码使用Microsoft的企业库日志记录应用程序块。您如何使其“更好”?
using Microsoft.Practices.EnterpriseLibrary.Logging;
class Program
{
static void Main(string[] args)
{
try
{
// Trying to write some data to the DB
...
}
catch (Exception ex)
{
LogHelper.LogException(ex, "Trying to write to the DB");
}
}
}
public class LogHelper
{
public static void LogException(Exception ex, string exceptionType)
{
try
{
// Simplified version, only logging the message
Logger.Write(exceptionType);
}
catch
{
// What do you do here???
}
}
}
Run Code Online (Sandbox Code Playgroud) 我是Java世界的新手,我需要调试一个宁静的Javax Web Service应用程序.
有些触发异常,它们被正确地记录,但我想有一个调用的代码,我的日志里面的页面的URL,以及堆栈跟踪.
GET和POST信息也很重要.
可能吗?
我目前正在开发一个生成大量日志数据的大型Web应用程序.因为我们没有将所有事件记录到数据库的基础结构,所以我们将它们写入文件.不幸的是,这使得在日志中搜索特定事件非常困难,并且无法生成频率报告.
在试图找出如何实现更好的数据库日志记录时,我找到了亚马逊的服务.特别是SimpleDB和DynamoDB.SimpleDB的一个用例是记录,但后来它说明了这一点
Amazon SimpleDB旨在存储相对少量的数据......
这似乎是矛盾的.这是我的问题:
更新2018-06-13:我已经使用SimpleDB在大型应用程序上记录应用程序数据.关键是将日志划分为与其生成时间段相对应的域(例如每天),以确保它们不会超出其限制.然后设置CRON作业以定期删除旧域.该解决方案运行良好,易于搜索.
error-logging ×10
logging ×3
c# ×2
php ×2
angularjs ×1
asp.net ×1
domexception ×1
error-log ×1
flask ×1
ini-set ×1
java ×1
javascript ×1
logstash ×1
nas ×1
permissions ×1
php-7 ×1
python-3.x ×1
reactjs ×1
rsync ×1
tomcat ×1