`

exception_notification 配置

阅读更多
安装 super_exception_notifier
    gem 方式1:
       sudo gem sources -a http://gemcutter.org 
       gem install super_exception_notifier


    gem 方式2:
  mkdir -p ~/src
  cd ~/src
  git clone git://github.com/pboling/exception_notification.git
  cd exception_notification
  gem build exception_notification.gemspec
  sudo gem install super_exception_notification-2.0.0.gem # (Or whatever version gets built)



plugin git 方式:
  ./script/plugin install git://github.com/pboling/exception_notification.git


plugin svn 方式:
   ./script/plugin install http://super-exception-notifier.googlecode.com/svn/trunk/super_exception_notifier



application controller 中加入
     
  class ApplicationController < ActionController::Base
    include ExceptionNotifiable
    ...
  end


配置exception_notifier
   添加文件 exception_notifier.rb 到 config/initializers/exception_notifier.rb
   exception_notifier.rb :
ExceptionNotifier.configure_exception_notifier do |config|
  # If left empty web hooks will not be engaged
  config[:web_hooks]                = []
  config[:app_name]                 = "[Project Name]"
  # NOTE: THERE IS A BUG IN RAILS 2.3.3 which forces us to NOT use anything but a simple email address string for the sender address.
  # https://rails.lighthouseapp.com/projects/8994/tickets/2340
  # config[:sender_address]           = %("#{(defined?(Rails) ? Rails.env : RAILS_ENV).capitalize} Error" <super.exception.notifier@example.com>)
  config[:sender_address]           = %("Project Name" <project_name.error@mail.project_name.com>)
  config[:exception_recipients] = %w(project_name@googlegroups.com)
  # Customize the subject line
  #config[:subject_prepend]          = "[#{(defined?(Rails) ? Rails.env : RAILS_ENV).capitalize} ERROR] "
  config[:subject_prepend]          = "[ProjectName ERROR] "
  config[:subject_append]           = " :("
  # Include which sections of the exception email?
  config[:sections]                 = %w(request session environment backtrace)
  # Only use this gem to render, never email
  #defaults to false - meaning by default it sends email.  Setting true will cause it to only render the error pages, and NOT email.
  config[:skip_local_notification]   = true
  # Example:
  #config[:view_path]               = 'app/views/error'
  config[:view_path]                = nil
  # Error Notification will be sent if the HTTP response code for the error matches one of the following error codes
  config[:notify_error_codes]   = %W( 405 500 503 )
  # Error Notification will be sent if the error class matches one of the following error error classes
  config[:notify_error_classes] = %W( )
  # What should we do for errors not listed?
  config[:notify_other_errors]  = true
  # If you set this SEN will
  config[:git_repo_path]            = nil
  config[:template_root]            = "#{File.dirname(__FILE__)}/../views"
end



配置ActionMailer
   
   可以加一个配置文件 config/config.yml
 

public:
  smtp_server: 'mail.xxxx.com'
  smtp_port: 25
  smtp_domain: 'www.xxxx.com'
  smtp_user_name: 'info@xxxx.com'
  smtp_passwd: ""
  smtp_authentication: 'login'
test:
  smtp_server: 'mail.xxxx.com'
  smtp_port: 25
  smtp_domain: 'www.xxxx.com'
  smtp_user_name: 'info@xxxx.com'
  smtp_passwd: ""
  smtp_authentication: 'login'
development:
  smtp_server: 'mail.xxxx.com'
  smtp_port: 25
  smtp_domain: 'mail.xxxx.com'
  smtp_user_name: 'info@xxxx.com'
  smtp_passwd: ""
  smtp_authentication: 'login'
production:
  smtp_server: 'mail.xxxx.com'
  smtp_port: 25
  smtp_domain: 'mail.xxxx.com'
  smtp_user_name: ''
  smtp_passwd: ''
  smtp_authentication: ''



加文件 20_mailer_config.rb
 
PUBLIC_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")['public']
PRIVATE_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")[RAILS_ENV]
CONFIG = PUBLIC_CONFIG.merge(PRIVATE_CONFIG || Hash.new)

ActionMailer::Base.smtp_settings = {
  :address  => CONFIG['smtp_server'],
  :port  => CONFIG['smtp_port'],
  :domain  => CONFIG['smtp_domain'],
  :user_name  => (CONFIG['smtp_authentication'].blank? ? nil : CONFIG['smtp_user_name']),
  :password  => (CONFIG['smtp_authentication'].blank? ? nil : CONFIG['smtp_passwd']),
  :authentication  => (CONFIG['smtp_authentication'].blank? ? nil : CONFIG['smtp_authentication'])
}

ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true



如果gem方式要加入gem 引用到 config/environment.rb

    config.gem 'super_exception_notifier', :version => '~> 2.0.0', :lib => "exception_notifier"



如果要在本地测试要作下面三件事情:
    1.服务要以production模式启动
      2.config/initializers/exception_notifier.rb 中 config[:skip_local_notification]   = false
    3.在application controller 加 local_addresses.clear
   
分享到:
评论

相关推荐

    rails2.3.2 ExceptionNotifier 配置

    接着,需要在你的Rails项目的`config/initializers/exception_notification.rb`文件中配置ExceptionNotifier。以下是一个基本的配置示例: ```ruby require 'exception_notifier' ExceptionNotifier.setup do |...

    Laravel开发-laravel-exception-email-notification

    在这里,`ExceptionNotification`是自定义的Mailable类,负责构造和发送包含异常信息的邮件。你需要在`app/Mail`目录下创建这个类,继承自`Illuminate\Mail\Mailable`,并重写`build`方法来设置邮件标题、正文等。 ...

    Ruby-Rails的异常通知插件

    ExceptionNotification.configure do |config| config.email_prefix = '[Error] ' config.email deliverer: :smtp, options: { address: 'smtp.example.com', port: 587, domain: 'example.com', user_name: '...

    ACE 网络编程 Client 源码

    ACE提供了一套完善的异常处理机制,例如`ACE_Transient`和`ACE_Notification_Stack`等,帮助开发者优雅地处理网络错误,如连接失败、超时或数据传输错误等。 6. **线程和并发性(Thread and Concurrency)** ACE支持...

    SpringBoot集成MongoDB

    public MongoTemplate mongoTemplate() throws Exception { return new MongoTemplate(mongoClient(), "mydatabase"); } } ``` **4. 定义MongoDB实体类** 使用SpringData MongoDB,我们可以创建Java对象来映射...

    Laravel开发-sneaker

    同时,创建一个`ExceptionNotification`邮件类,继承自`Mailable`,并设置邮件的主题和正文: ```php use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; ...

    paypal帮助文档,版本为PayPal SDK v4_3_1

    3. **支付事件通知**:PayPal的IPN(Instant Payment Notification)服务能实时推送支付状态变化,帮助开发者跟踪订单状态。 4. **账单支付计划**:SDK支持创建和管理定期支付计划,如订阅服务或分期付款。 5. **...

    laravel-exception-notifier:Laravel Exception Notifier 会将错误的电子邮件以及堆栈跟踪发送给选定的收件人。 此包包括所有必要的特征、视图、配置和邮件通知,用于在您的应用程序异常时发出电子邮件通知。 您可以根据环境自定义发送至、抄送至、密送至、启用和自定义主题或默认主题。 为 Laravel 5.2、5.3、5.4、5.5+ 构建。 在客户报告错误之前获取错误并修复它们,这就是存在的原因! 对于 Laravel 5、6 和 7

    此包包括所有必要的特征、视图、配置和邮件通知,用于在您的应用程序异常时发出电子邮件通知。 您可以根据环境自定义发送对象、抄送对象、密送对象、启用/禁用以及自定义主题或默认主题。 为 Laravel 5.2、5.3、5.4...

    Laravel开发-slack Slack 服务集成

    } catch (Exception $e) { // 错误处理 } ``` #### 5.2 自定义 Webhook 路径 如果你需要向多个 Slack 频道发送通知,可以配置多个 Webhook URL,并在通知类中根据需要选择使用。 #### 5.3 使用频道和用户 除了...

    Android下载进度监听和通知的处理详解

    void onError(Exception e); void onLoading(long total, long progress); } ``` 这个接口可以被实现类在下载过程中调用,以通知状态的改变,从而实现对下载进度和结果的响应。 综合上述技术点,开发者可以实现...

    J2EE常见技术问题总结

    &lt;s:intercept-url pattern="/monitor/notification.do" filters="none"/&gt; ``` 这段配置指定了不同的 URL 模式对应的安全策略: - `...

    Laravel开发-gcm

    } catch (\Exception $e) { // 处理错误或异常 return null; } } } ``` 这个`sendNotification`方法接收一个数据数组(将作为推送通知的内容)和一个设备注册ID数组。它会向GCM服务器发送POST请求,携带必要的...

    java版的简单iphone推送

    - **环境配置**: - 测试环境中使用`gateway.sandbox.push.apple.com`作为服务器地址。 - 生产环境中使用`gateway.push.apple.com`作为服务器地址。 - **错误处理**: 在实际应用中,应增加更完善的错误处理机制,...

    ApnsPHP_apnsphp_php_

    APNSPHP是一个专门为苹果推送通知服务(Apple Push Notification service,简称APNs)设计的PHP库。这个库的主要目的是帮助PHP开发者方便地与苹果服务器进行通信,以便向iOS、macOS和watchOS设备发送推送通知。从...

    最新jpush-api-java-client-master.zip

    } catch (Exception e) { e.printStackTrace(); } } } ``` 六、最佳实践与注意事项 1. **安全策略**:妥善保管API密钥,避免泄露。在生产环境中,应使用环境变量存储密钥,而非硬编码在代码中。 2. **消息设计*...

    Laravel开发-ably-php-laravel

    $channel-&gt;publish('new-notification', ['message' =&gt; 'Hello, world!']); // 订阅消息 $channel-&gt;subscribe(function ($message) { echo "Received message: {$message-&gt;name} - {$message-&gt;data}"; }); ``` **...

    IOS推送实现(java)

    } catch (Exception e) { // 处理异常 } } } ``` 六、测试与部署 1. 测试:使用真实设备的Device Token进行测试,确保消息能正确送达。 2. 部署:将Java服务部署到服务器,如Tomcat或Jetty,以便在需要时发送推...

    Laravel开发-slack

    public function sendNotification() { Slack::send('这是来自 Laravel 应用的通知!'); } ``` 通过这种方式,你可以根据业务需求定制消息内容,如错误报告、任务完成通知等。还可以利用 Slack 的富文本格式特性,...

    Java内存缓存工具Guava LoadingCache使用解析

    public void onRemoval(RemovalNotification, String&gt; notification) { // 处理缓存项被移除时的逻辑 } }) .build(cacheLoader); return cache; } } ``` 在上面的示例中,我们创建了一个Guava Cache管理器,...

    Laravel开发-slack-laravel

    Slack::to('#general')-&gt;from('Laravel Bot')-&gt;send('Notification!'); ``` - **富文本消息**:除了纯文本,还可以发送包含Markdown、链接、按钮等复杂结构的消息: ```php $message = ['text' =&gt; 'Check out |...

Global site tag (gtag.js) - Google Analytics